计算机操作系统

第一章 操作系统概述
一、进程管理(CPU管理)*
1、进程控制:创建,暂停,唤醒,撤销
2、进程调度:调度策略,优先级;
3、进程通信:进程间通信。
二、内存管理*
1、内存分配
2、内存共享
3、内存保护
4、虚拟内存
三、设备管理
1、设备的分配和调度
2、设备无关性
3、设备传输控制
4、设备驱动
四、文件管理
1、存储空间管理
2、文件的操作
3、目录的操作
4、文件和目录的存取权限管理

操作系统的定义:是一个大型系统程序,
1、提供用户接口
2、分配和管理软硬件资源

操作系统发展历史
1、手工操作:没有操作系统
2、单道批处理系统:批量,自动,单道
3、多道批处理系统:多道,并行(宏观上),串行(微观上)
4、分时操作系统
分时技术:主机以很短的“时间片”(50ms)为单位,把CPU轮流分配给每个终端使直到全部作业被运行完。
特点:(1)多路调制性:多用户联机使用同一台计算机
(2)独占性:用户感觉独占计算机
(3)交互性:及时响应用户的请求
进一步发展:微机操作系统、多处理机操作系统、网络操作系统、实时操作系统、嵌入式操作系统
第二章 操作系统逻辑结构
操作系统的逻辑结构
1、整体式结构
特点:模块设计、编码和调试独立;
模块调用自由;
模块通信多以全局变量形式完成
缺点:信息传递随意,维护和更新困难
2、层次结构
所有功能模块按照调用次序排成若干层,相邻层间只有单向依赖或单向调用。
3、微内核结构
操作系统=微内核+核外服务器
微内核:足够小,只提供OS最基本的核心功能和服务
核外服务器:完成OS的绝大部分服务功能,等待应用程序提出请求

支持操作系统的最基本的硬件结构:CPU、内存、中断、时钟

一、CPU的态:核态、用户态
核态:能够访问所有资源和执行所有指令,管理程序和OS
用户态:仅能访问部分资源,其他资源受限

OS按进程来区分CPU的状态

二、存储器
主存:直接和CPU交换信息
辅存:不能直接和CPU交换信息

三、中断机制
引入中断的目的:实现并发活动、实现实时处理、故障自动处理
中断类型:强迫性中断和自愿中断;外中断和内中断
中断响应的实质:
交换指令执行地址,交换CPU的态
工作:现场保护和恢复,参数传递(通信)

第三章操作系统用户界面
一、用户界面:OS提供给用户控制计算机的机制,又称用户接口
分类:操作界面,系统调用

操作界面:1、图形用户接口:窗口,图标,菜单,按钮,鼠标
2、键盘命令:在控制台环境下接收键盘输入的命令

系统调用:操作系统内核为应用程序提供的服务/函数
特点:1、一般涉及核心资源或硬件的操作
2、一定运行在核态
3、每个系统调用具有唯一的编号
4、调用过程会产生中断:自愿中断

第四章 进程管理
一、进程
定义:程序在某个数据集合上的一次运行活动
特征:动态性,并发性,异步性,独立性
进程与程序的区别:进程是动态的,暂存的;程序是静态的,长存的,一个程序可能有多个进程
类型:系统进程:指系统内核相关的进程
用户进程:运行在用户态的进程

二、进程的状态
运行态:进程已经占有CPU
就绪态:具备运行条件,但由于无CPU,暂时不能运行
阻塞态:因为等待某项服务完成或信号不能运行的状态

进程状态的变迁:

三、进程控制块PCB
描述进程状态、资源和与相关进程关系的数据结构
PCB是进程的标志

进程=程序+PCB

四、进程控制
四种典型额控制行为:创建进程、阻塞进程、撤销进程、唤醒进程

创建进程的过程:
1、创建一个空白PCB
2、获得并赋予进程标识符ID
3、为进程分配空间
4、初始化PCB
5、插入到相应的进程队列,新进程插入到就绪队列中

撤销进程的过程:
1、在PCB队列中检索出该PCB
2、获取该进程的状态
3、若该进程处在运行态,立即终止该进程
递归:检查是否有子进程,先撤销子进程
4、释放进程占有的资源
5、将进程从PCB队列中移除

进程阻塞的时机:请求系统服务,启动某种操作,新数据为到达,无新工作可做

阻塞进程的过程:
1、停止运行
2、将PCB运行态改为阻塞态
3、插入相应原因的阻塞队列
4、转调度程序

进程唤醒的时机:系统服务满足,I/O完成,新数据到达,进程提出新请求

进程控制原语:
原语:由若干指令构成的具有特定功能的函数
具有原子性,其操作不可分割

五、线程
线程是可由CPU直接运行的实体;
一个进程可以创建多个线程;
多个线程共享CPU可以实现并发运行;
进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程——资源分配的最小单位。

线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程——程序执行的最小单位

六、临界区和锁
临界资源:一次只允许一个进程独占访问(使用)的资源,例如共享变量i
临界区:进程中访问临界资源的程序段

临界区访问机制的原则:
1、忙则等待
2、空闲让进
3、有限等待:进程进入临界区的请求在有限时间内得到满足
4、让权等待:等待进程放弃CPU(让其他进程有机会进入临界区)

锁机制:对临界区上锁和开锁操作,S=0,1;

七、进程的同步和PV操作 (P-暂停,V-唤醒)
进程的互斥关系:多个进程由于共享了独占性资源,必须协调各进程对资源的存取顺序:确保没有任何两个或以上的进程同时进行存取操作
互斥和资源共享相关,资源:临界资源 存取操作区域:临界区

进程的同步关系:若干合作进程为了完成一个共同的任务,需要相互协调运行步伐,一个进程开始某个操作之前必须要求另一个进程已经完成某个操作,否则前面的进程只能等待(进程之间存在先后关系)

互斥是特殊的同步

信号灯数据结构:信号灯变量定义为二元矢量(S,q),
S是信号量,初值为非负整数,q是PCB队列,初值为空集
两个操作:P,V操作

P的原理:
1、S减1
2、若差大于或等于0,该进程继续
3、若差小于0,该进程阻塞,并进入到队列q中
P操作可能使进程在调用处阻塞,S的初值很重要!

V的原理:
1、S加1
2、若和大于0,该进程继续
3、若和小于或等于0,该进程继续,同时从q中唤醒一个进程
V操作可能会唤醒阻塞的进程

P-V操作解决互斥问题
进入临界区之前先执行P操作;(可能阻塞当前进程)
离开临界区之后再执行V操作;(可能唤醒某个进程)

P-V操作解决同步问题
同步机制实质:运行条件不满足时,能让进程暂停;运行条件满足时,能让进程
立即继续

P-V操作解决同步问题的基本思路:
暂停当前进程:在关键操作之前执行P操作
继续进程:在关键操作之后执行V操作
定义有意义的信号量S,并设置合适的初值

经典同步问题
1、生产者和消费者问题
规则:不能向满缓冲区存产品;不能从空缓冲区去产品;每个时刻金允许一个生产者或消费者存或取1个产品

2、读者和编者问题
规则:允许多个读者同时读;不允许读者,编者同时操作;不允许多个编者同时操作

七、进程通信
方式:共享内存、消息传递、管道通信

1、匿名管道通信仅能用于父子或兄弟进程间通信

第五章死锁
一、哲学家问题

二、死锁:两个或多个进程无限期地等待永远不会发生的条件的一种系统状态,导致每个进程都永远阻塞

三、死锁的起因:
1、系统资源有限
2、并发进程的推进顺序不当
3、不正确的P-V操作可能会带来死锁(互斥的P要在同步的P之后)

四、死锁的预测策略
死锁的必要条件:
互斥条件(进程互斥使用资源,资源具有独占性)
不剥夺条件(进程在访问完资源前不能被其他进程强行剥夺)
部分分配条件(进程只申请到了所需的部分资源,边运行边分配)
环路条件

预防死锁:破坏死锁的四个必要条件,限制太严格,导致资源利用率和吞吐量降低

避免死锁:用某种方法去评估若分配资源是否会让系统进入死锁状态,若是,拒绝分配(银行家算法)

检测和恢复死锁

第六章进程调度
一、进程调度的概念
在合适的时候以一定策略选择一个就绪进程运行

进程调度的目标(量化指标):
周转时间:完成时间-提交时间,说明进程在系统中停留的时间长短
平均周转时间:
带权周转时间:w=t/tr ,t:进程的周转时间,tr:进程的运行时间,表明进程在系统中相对停留时间
平均带权周转时间:

二、典型的调度算法
1、先来先服务(FCFS)
只考虑等候时间,没考虑运行时间。不利于短作业
2、短作业优先调度算法(SJF)
忽视了等待时间,长作业会出现“饥饿”现象
3、响应比优先调度算法
响应比=响应时间/运行时间=(等待时间+运行时间)/运行时间=1+等待时间/运行时间
4、优先数调度算法
优先数=静态优先数+动态优先数
5、循环轮转调度算法
把所有就绪进程按先进先出的原则排成队列,队列逻辑上是环形的

第七章存储管理
一、内存管理功能
三级存储系统

功能
1、地址映射(地址重定位)
把程序中的地址(虚拟地址/逻辑地址)变换成内存中真实地址(物理地址)的过程

方式:
(1)固定地址映射
编程或编译时,确定逻辑地址和物理地址映射关系
(2)静态地址映射
程序装入时由操作系统完成逻辑地址到物理地址的映射,例如双击图标

物理地址=装入基址+逻辑地址

程序装入后不能移动,要占用连续的内存空间
(3)动态地址映射
在程序执行过程中把逻辑地址转换为物理地址

物理地址=装入基址+逻辑地址

如果程序有移动,转入基址会改变,重新计算新的物理地址
不要求占用连续的内存空间

2、虚拟存储
目标:
使得大的程序能在较小的内存中运行
使得多个程序能在较小的内存中运行
使得多个程序并发运行时,地址不冲突
使得内存利用效率高:无碎片,共享方便

3、内存分配功能
4、存储保护功能
保证在内存中的多道程序只在给定区域活动互不干扰(防止访问越界,防止访问越权)

可以采用界址寄存器

二、物理内存管理
1、分区内存管理
(1)单一区存储管理(不分区存储管理)
程序运行占用整个内存
(2)固定分区
把内存固定地划分为若干个大小不等的分区供各个程序使用
维护一个分区表
(3)动态分区
程序装入时创建分区,使分区的大小刚好与程序的大小相等
当开始的一些程序运行结束后,其他程序再装入时会存在内存碎片

2、分区的放置策略
分配过程:
(1)从空闲区表的第一个区开始,寻找≥s的空闲区
(2)找到后从分区中分割出大小为s的部分给用户
(3)分割后的剩余部分作为空闲区登记在空闲区表中
注意:分割空闲区时一般从底部分割,保证空闲区表中位置不变,只需改变大小

空闲区表如何排序—放置策略
可以按位置、空闲区的大小递增、递减来排序
(1)按空闲区位置递增排序—首次适应算法
尽可能地先使用低地址空间,当需要较大分区时,高地址空间有较大的满足可能
(2)按空闲区位置递减排序
(3)按空闲区大小的递增排序—最佳适应算法
尽可能地先试用较小的空闲区,保留大的空闲区
(4)按空闲区大小的递减排序—最坏适应算法
大空闲区分割后剩下部分还是很大,还能装下较大的程序。仅做一次就能查找到

分区的回收:
回收程序释放分区,登记到空闲区表中,以便再分配
需要考虑的问题:
释放区与现有空闲区是否相邻?
不相邻→直接插入空闲区表中
相邻→与空闲区合并后,再更新空闲区表

3、内存覆盖技术
覆盖:在较小的内存空间中运行较大的程序
内存分区
常驻区:被某段单独且固定地占用,可划分多个
覆盖区:能被多段公用(覆盖),可划分多个

缺点:
编程复杂,程序执行时间长(从外存装入内存耗时)

4、内存交换技术
原理:
换出:内存不够时,把进程写到磁盘
换入:当进程要运行时重新写回内存

缺点:换入和换出增加CPU开销;交换单位太大(整个进程)

需要考虑的问题:
减少交换传送的信息量(模块/段)
外存交换空间的管理方法
程序换入时的地址重定位

地址重定位:
放到什么位置?
原来位置:优点:程序简单 问题:容易出现地址冲突
任一空的位置:优点: 利用内存灵活 问题:地址需要重定位

5、内存碎片
解决碎片的办法:
(1)规定门限值
分割空闲区时,若剩余部分小于门限值,空闲区不分割,全部给用户
(2)内存拼接技术
将所有空闲区集中一起构成一个大的空闲区
(3)解除程序占用连续内存才能运行的限制
把程序分拆成多个部分装入不同分区,充分利用碎片

三、虚拟内存管理
实现思路:
在程序运行时,只把当前必要的很小一部分代码和数据装入内存中,其余代码和数据需要时再装入,不再运行的代码和数据及时从内存删除

典型虚拟内存管理方式:
页式虚拟存储管理、段式虚拟存储管理、段页式虚拟存储管理

1、页式虚拟内存管理概念
把进程空间和内存空间划成等大小的小片
进程的小片→页(页面)
内存的小片→页框

2、页表和页式地址映射
虚拟地址VA可以分解为页号P和页内偏移W

在计算机内计算页号和页内偏移:

页面映射表:记录页和页框之间的对应关系,也叫页表

页式地址映射过程:
通过虚拟地址计算页号和页内偏移量,再参照页表,查到该地址的物理地址。

3、快表技术和页面共享技术
慢表:页表放在内存中
快表:页表放在cache中

快表是慢表的部分内容的复制
地址映射时优先访问快表,若在快表中找到所需的数据,则称为“命中”;没有命中时,需要访问慢表,同时更新快表

页面共享技术原理:
在不同进程的页表中填上相同的页框号,多个进程能访问相同的内存空间,从而实现页面共享,页面共享在内存中只有一份真实存储,节省内存

4、缺页中断

页表的扩充----带中断位的页表

----带访问位和修改位的页表

缺页中断:在地址映射过程中,当所要访问的目的页不在内存中时,则系统产生异常中断

5、页面淘汰
淘汰策略:选择淘汰哪一页
页面抖动:页面在内存和辅存间频繁交换的现象,会导致系统效率下降

(1)最佳算法(OPT)
淘汰以后不再需要或最远的将来才会用到的页面

理论上最佳,实践中无法实现

(2)先进先出淘汰算法(FIFO)
淘汰在内存中停留时间最长的页面

优点:实现简单
缺点:进程只有按顺序访问地址空间时页面命中率才最理想,(调度循环就不太好)

(3)最久未使用淘汰算法(LRU)
可以用软硬件支持
其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”

(4)最不经常使用算法(LFU)
选择到当前时间为止被访问次数最少的页面
其核心思想是“如果数据过去被访问多次,那么将来被访问的频率也更高”

每页设置访问计数器,每当页面被访问时,该页面的访问计数器增加1
发生缺页中断时,淘汰计数值最小的页面,并将所有计数器清零

注意:LRU和LFU的区别
LRU (Least Recently Used): 最近最少使用调度算法,首先丢弃最近最少被使用的页面。
LFU (Least Frequently Used): 最近最不常用调度算法,软件统计数据被使用的频率,使用频率最低的数据首先被丢弃。

6、缺页因素和缺页系统缺点
缺页因素:淘汰算法、分配给进程的页框数、页本身的大小、程序编制的方法

页式系统的不足:页面划分无逻辑含义,页的共享不灵活,页内碎片

7、段式和段页式虚拟存储
进程分段:把进程按逻辑意义划分为多个段,每段有段名,长度不定。进程由多段组成
例如:代码段,数据段,堆栈段

段式内存管理系统的内存分配:
以段为单位装入,每段分配连续的内存,但是段与段之间不要求相邻

段式系统的虚拟地址:
虚拟地址VA 包含段号S和段内偏移W

段表:

段式地址映射过程:
(1)有逻辑地址VA分离出段号S和段内偏移W
(2)查询段表
检索段号S,查询该段基地址B和长度L
(3)物理地址 MA=B+W

段的共享:
共享段在内存中只有一份存储
共享段被多个进程映射到各自段表中
需要共享的模块都可以设置为单独的段

段式系统的缺点:
段需要连续的存储空间
段的最大尺寸受到内存大小的限制
在辅存中管理可变尺寸的段比较困难

段页式存储管理:
在段式存储管理中结合页式存储管理技术
在段中划分页面

段页式系统的地址构成:段号、页号、页内偏移

段页式地址的映射过程:
同时采用段表和页表实现地址映射。

第八章 设备管理
一、设备管理概念
主要功能:
(1)设备分配
设备分配程序按照一定的策略,为申请设备的进程分配设备,记录设备的使用情况
(2)设备映射
物理设备:I/O系统中实际安装的设备,物理名:ID或字符串
逻辑设备:应用软件使用的设备,逻辑名:友好名
设备映射是指将逻辑设备映射到物理设备的功能

设备独立性:
物理设备对用户透明,用户使用同一规范的方式使用设备,用户编程时使用设备逻辑名,由系统实现逻辑设备到物理设备的转换

(3)设备驱动
对物理设备进行控制,实现I/O操作
把外设当做文件

二、Spooling系统(假脱机系统)
脱机技术:脱离主机的控制进行输入/输出操作,缓解了CPU与低速I/O设备的矛盾

设备分配方法:独占设备的分配、共享设备的分配、虚拟分配

独占型设备:
包括所有的字符型设备,任意时间段内最多只能被一个进程占用(键盘等)

共享型设备:
包括所有块型设备,宏观上,一个共享型设备可以被多个进程同时占用,微观上,多个进程交替使用同一个设备(硬盘等)

(1)独占型设备的分配
进程使用独占设备的过程:申请—使用—释放
从进程申请成功,知道释放用完之前,独占设备

(2)共享型设备的分配
进程使用共享型设备不需要申请,也不存在占用或释放设备的问题

(3)虚拟分配 **
虚拟技术:在一类物理设备上模拟另一类物理设备的技术,借助辅存部分区域模拟独占设备,将独占设备转化为共享设备

虚拟设备:用来模拟独占设备的部分辅存称为虚拟设备
输入井:模拟输入设备的辅存区域
输出井:模拟输出设备的辅存区域

虚拟分配:
当进程需要与独占设备交换信息时,就采用虚拟技术将与该独占设备所对应的虚
拟设备(部分辅存)分配给它

Spooling:

Spooling技术将独占设备改造成“共享”设备,实现了虚拟设备功能。

可知SPOOLing技术具有如下三个特点:
(1)提高了I/O速度。从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾。
(2)设备并没有分配给任何进程。在输入井或输出井中,分配给进程的是一存储区和建立一张I/O请求表。
(3)实现了虚拟设备功能。多个进程同时使用一个独享设备,而对每一进程而言,都认为自己独占这一设备,从而实现了设备的虚拟分配。不过,该设备是逻辑上的设备。

第八章 文件管理
一、文件系统概念
文件是计算机信息存取的一种重要组织形式,由若干个信息项有序构成

文件属性:指定文件的类型、操作特性和存取保护等一组信息。文件属性存放在文件所在目录的目录文件中

文件系统的目标是让用户以文件名来存取文件

文件的结构:
逻辑结构:为用户提供逻辑结构清晰、使用方便的文件(记录式文件、流式文件
物理结构:文件在存储设备上的存储结构

文件的存取方法:
(1)顺序存取:按文件信息项排列顺序依次存取
(2)随机存取:存取操作时指定存取的位置,对于流式文件或为定长的记录式文件容易确定存取位置

二、文件物理结构
1、连续文件
文件按逻辑块的顺序存放在硬盘连续的物理存储块中,文件目录记录文件长度(块数)和第一个存储块的块号

2、索引文件
文件存放在不连续的存储块中,建立索引表记录文件逻辑块和物理存储块的对应关系

文件=索引区+数据区
先访问索引,再访问数据
支持顺序存取和随机存取

3、串联文件
文件存放在不连续的存储块中

每个存储块有一个指针,指向文件下一个存储块
文件目录:指明文件名和第一个存储块的快号

适用于顺序存取

三、FAT文件系统
串联文件的应用----FAT文件系统(FAT-文件分配表)

FAT:将next有序集中放到FAT表中

若存储块有2N块,FAT有2N个元素,每项至少需要N位的宽度

扇区:磁盘上最小可寻址存储单元
簇=存储块:设备的最小存取单元,固定数量的扇区

FAT元素数目和簇的数目一样多

磁盘容量=FAT长度×簇容量=FAT长度×簇扇区数×512字节

四、文件存储管理和目录
存储空间管理
功能:记录磁盘使用情况,管理和分配、回收存储空间
记录磁盘空闲块的方法:
(1)空闲文件目录
空闲文件:把连续空闲区看成一个特殊文件,由多个连续空间块组成
为空闲文件建立的专门目录:空闲文件目录

(2)空闲块链
把所有空闲块链接在一起
(3)位示图
从内存中划出若干个字节,每个bit表示一个存储块空闲或占用状态

文件目录管理
文件目录:文件名址录,记录文件名和存放地址的目录表,具有将文件名转换为外存物理位置的功能,文件属性也记录在目录中

目录文件:文件目录以文件形式存于外存,这个文件就叫目录文件

文件的全名:
包括从根目录开始到文件为止的通路上所有子目录路径
子目录之间用正斜线“/”或反斜线“\”隔开
子目录名组成的部分又称为路径名

两个路径名形式:
绝对路径名:从根目录开始到指定的文件
相对路径名:从当前目录直到指定的文件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值