文章目录
-
- 1 操作系统介绍
-
- 1.1 操作系统的作用
- 1.2 操作系统的功能
- 2 进程管理
-
- 2.1进程
- 2.2进程控制与同步
- 2.3线程
- 2.4进程间的通信
- 3 处理器调度
-
- 3.1 处理器调度的层次
- 3.2 调度算法
- 3.3 Linux任务调度
- 4 储存器管理
-
- 4.1 程序的链接
- 4.2 分页储存管理
- 4.3 虚拟内存virtual memory
- 4.4 请求分页储存管理方式
- 4.5 段式存储管理
- 4.6 段页式存储管理
- 5 设备管理
-
- 5.1 I/O设备
- 5.2 I/O控制方式
- 5.3 缓冲
- 5.4 设备分配
- 5.5 SPOOLing技术
- 6 文件管理
-
- 6.1 文件定义
- 6.2 文件系统模型
- 6.3 外存分配方式
- 6.4目录管理
- 6.5 文件存储空间管理:
- 6.6 文件共享与文件保护:
- 6.7 数据一致性控制
- 7 操作系统接口
1 操作系统介绍
1.1 操作系统的作用
操作系统为用户与计算机硬件系统之间的接口;
操作系统是计算机资源的管理者/分配者,服务的提供者;
操作系统可以扩展机器
1.2 操作系统的功能
###1 处理机管理功能
进程控制;进程同步;进程通信;调度
###2 储存器管理功能
内存分配;内存保护;地址映射;内存扩充虚拟储存
###3 设备管理功能
缓冲管理;设备分配;设备处理
###4 文件管理
文件储存空间的管理;目录管理;文件的读写管理和保护
###5 用户接口
命令接口:终端或控制台;程序接口:系统调用;图形接口
2 进程管理
2.1进程
###1 进程定义:
进程是程序的一次执行;
进程是一个程序及其数据在处理机上顺序执行时所发生的活动;
进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
###2 进程的三种基本状态
就绪、执行、阻塞
###3 每一个进程都有
逻辑控制流、私有地址空间
###4 进程控制块(PCB)
OS是根据PCB来对并发执行的进程进行控制和管理的
进程控制块中的信息包括
- 进程标识符
- 处理机状态:寄存器、指令计数器、程序状态字、用户栈指针
- 进程调度信息
- 进程控制信息
2.2进程控制与同步
###1 信 量的应用
实现进程互斥;
实现前驱关系
###2 经典进程的同步问题
- 生产者-消费者问题/li>
- 哲学家进餐问题/li>
- 读者-写者问题
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
访问局限性定理
为什么采用虚拟内存br> 让主存更有效、简化内存管理、隔离地址空间
- 作为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系统调用的类型
进程控制、文件操纵、进程间通信、信息维护
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!