操作系统提纲总结


本文总结自《计算机操作系统(第三版)》课件

1 操作系统介绍

1.1 操作系统的作用

操作系统为用户与计算机硬件系统之间的接口;
操作系统是计算机资源的管理者;
操作系统可以扩展机器

1.2 操作系统的功能

###1 处理机管理功能
进程控制;进程同步;进程通信;调度
###2 储存器管理功能
内存分配;内存保护;地址映射;内存扩充虚拟储存
###3 设备管理功能
缓冲管理;设备分配;设备处理
###4 文件管理
文件储存空间的管理;目录管理;文件的读写管理和保护
###5 用户接口
命令接口:终端或控制台;程序接口:系统调用;图形接口

2 进程管理

2.1进程

###1 进程定义:
进程是程序的一次执行;
进程是一个程序及其数据在处理机上顺序执行时所发生的活动;
进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
###2 进程的三种基本状态
就绪、执行、阻塞
###3 每一个进程都有
逻辑控制流、私有地址空间
###4 进程控制块(PCB)
OS是根据PCB来对并发执行的进程进行控制和管理的

进程控制块中的信息包括

  • 进程标识符
  • 处理机状态:寄存器、指令计数器、程序状态字、用户栈指针
  • 进程调度信息
  • 进程控制信息

2.2进程控制与同步

###1 信号量的应用
实现进程互斥;
实现前驱关系

###2 经典进程的同步问题

  • 生产者-消费者问题?
  • 哲学家进餐问题?
  • 读者-写者问题

2.3线程

###1 线程定义
线程是程序中一个单一的顺序控制流程,是系统独立调度和分派CPU的基本单位。同一个进程的多个线程共享相同的:代码段、数据段、操作系统的资源,可并发执行
###2 线程间的同步和通信

  • 互斥锁:开锁和关锁两个状态
  • 条件变量:每个条件变量通常与一个互斥锁一起使用
    信号量机制:分为私有信号量与公有信号量

2.4进程间的通信

###1 共享内存:允许两个或更多进程共享一个给定的存储区,不需要复制数据,是最快的IPC,但是多个进程对一个给定存储区的同步访问是有限制的

但是传递消息对于传递少量信息、数据更有用,一般通过系统调用实现,有较大的开销

###2 Message passing system:是用的最广泛的一种进程通信机制
信号是送到进程的“软件中断”,通知进程出现了非正常事件

发送信号:

  • 通过命令kill发信号
  • 通过系统调用发送信号
  • 通过键盘发送信号

进程对信号的处理方式:

  • 设置为缺省处理方式
  • 忽略该信号
  • 捕捉信号并定义相关的handler。用户在自己的程序中事先定义好一个函数,当信号发生后就去执行

消息传递通信的两种方法:

  • 直接通信方式
  • 间接通信方式:信箱

###3 管道pipe通信
数据传输:一个进程的输入作为另一个进程的输出
生产者消费者模式,内存不共享

无名管道实际上是内存中的一个临时存储区,它由系统安全控制,并且独立于创建它的进程的内存区。
父子进程需要双向通信时,应采用两个管道

3 处理器调度

3.1 处理器调度的层次

  • 低级调度:进程调度,决定哪个可用进程占用处理器执行
    就绪态->运行态
    低级调度的主要功能:
    记住进程或者内核级线程的状态
    决定某个进程或者内核级线程什么时候获得处理器,以及占用多长时间
    吧处理器分配给进程或者内核级线程
    收回处理器
  • 中级调度:平衡负载调度,决定主存中的可用进程集合,把一些进程调至外存去等待
    挂起就绪态->就绪态
  • 高级调度:作业调度,决定能否加入到可执行的进程池中
    新建态->挂起就绪态/就绪态

3.2 调度算法

###1 先来先服务
###2 短作业优先调度算法
###3 优先权调度算法
非抢占式优先权算法与抢占式优先权调度算法
###4 基于时间片的轮转调度算法

3.3 Linux任务调度

linux将进程分成实时进程和普通进程,其实时进程应先于普通进程运行。
对于实时进程,采用FIFO和RR(时间片轮转调度)
对于普通进程,采取动态优先调度

4 储存器管理

4.1 程序的链接

静态链接方式
装入时动态链接
运行时动态链接

4.2 分页储存管理

将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页
页表:map virtual pages to physical pages
多级页表:逻辑地址空间很大,页表也就很大
一张位示图表面页是否被占用

快表:为提高地址转换速度设置一个专用的高速存储器,用来存放页表的一部分,且高速存储器为理想存储器,即按内容寻址

4.3 虚拟内存virtual memory

访问局限性定理
为什么采用虚拟内存?
让主存更有效、简化内存管理、隔离地址空间

  • 作为caching的工具:逻辑上对内存容量加以扩充,逻辑容量有内存容量和外存容量之和决定
  • 作为内存管理的工具:每个进程有自己的虚拟内存空间,并且process can view memory as a simple linear array
  • 作为内存保护的工具:permission bits决定能否读写

4.4 请求分页储存管理方式

把进程的全部页面装入虚拟存储器,执行时先把进程第一页装入实际内存,然后根据执行行为,动态调入不在主存的页,同时进行必要的页面调出

地址转换:
CPU处理地址:若页在内存,则获得块号形成绝对地址;若页不再内存,则CPU发出缺页中断
操作系统处理缺页中断:若有空闲物理也架,则根据外存地址调入页,更新页表与快表;若无空闲页架,则决定淘汰页,调出已修改页,调入新页,更新页表与快表

物理块分配、页表创建和初始化、页面调度置换算法
……

4.5 段式存储管理

分段存储器的逻辑地址由两部分组成:段号:单元号,
基于可变分区存储管理实现,一个进程要占用多个分区
硬件要增加一组用户可见的段地址寄存器(代码段、数据段、堆栈段、附加段)

4.6 段页式存储管理

段式存储管理基于页式存储管理实现,每一段不必占据连续的存储空间,可存放在不连续的主存页架中

5 设备管理

5.1 I/O设备

低速设备、中速设备、高速设备
块设备(以数据块为单位储存信息)、字符设备(基本单位为字符)
设备控制器→数据线、状态线、控制线→I/O设备

5.2 I/O控制方式

###1 程序I/O方式:循环测试等待
###2 中断驱动I/O控制方式
###3 直接储存器访问I/O控制方式(DMA direct memory access)
设备与内存之间,使CPU不介入传送时的操作,基本单元是数据块
###4 I/O通道控制方式:可实现CPU、通道、和I/O设备三者的并行操作

5.3 缓冲

缓和CPU与I/O设备间速度不匹配的矛盾,减少对CPU的中断频率,提高CPU和I/O设备之间的并行性
缓冲池:既可用于输入又可用于输出的公用缓冲池,可形成三个队列:空缓冲队列、输入队列、输出队列

5.4 设备分配

设备控制表
设备的独立性:应用程序独立于具体使用的物理设备。应用程序使用逻辑设备名称来请求使用某类设备,系统执行使用物理设备名称。

5.5 SPOOLing技术

SPOOLing程序与外设进行数据交换,应用程序进行I/O操作时,是和SPOOLing程序交换数据,因为虚拟I/O比实际I/O速度快,可以对独占设备互斥共享使用

6 文件管理

6.1 文件定义

具有文件名的一组相关元素的集合,是文件系统中最大的一个数据单位,分成有结构文件和无结构文件。
有结构文件有若干个相关记录组成
无结构文件:即流式文件,被看成一个字符流,在UNIX系统中,所有的文件被看作成流式文件

6.2 文件系统模型

用户

文件系统接口

对对象操纵和管理的软件集合

对象及其属性

6.3 外存分配方式

  • 连续分配:顺序访问很快,但事先必须知道文件的长度
  • 链接分配:不支持高效的直接存取
  • 索引分配:可单级索引分配和多级索引分配

6.4目录管理

多级目录结构
目录查询技术:线性检索法、hash方法

6.5 文件存储空间管理:

空闲表法、空闲链表法

6.6 文件共享与文件保护:

利用符号链实现文件共享

6.7 数据一致性控制

事务是用于访问和修改各种数据项的一个程序单位。 事务也可以被看作是一系列相关读和写操作。
事务记录、恢复算法、检查点check point

7 操作系统接口

UNIX系统调用的类型
进程控制、文件操纵、进程间通信、信息维护

猜你喜欢

转载自blog.csdn.net/tiaozhanzhe1900/article/details/82751697
今日推荐