操作系统知识点复习总结
- 格式:docx
- 大小:31.92 KB
- 文档页数:8
计算机操作系统
第0章 计算机系统概述
计算机系统由操作员、软件系统和硬件系统组成。
软件系统:有系统软件、支撑软件和应用软件三类。系统软件是计算机系统中最靠近硬件层次不可缺少的软件;支撑软件是支撑其他软件的开发和维护的软件;应用软件是特定应用领域的专用软件。
硬件系统:借助电、磁光、机械等原理构成的各种物理部件的组合,是系统赖以工作的实体。如今计算机硬件的组织结构仍然采用冯诺依曼基本原理(有控制器、运算器、存储器、输入设备和输出设备—通常把控制器和运算器做一起称为中央处理机cpu,把输入输出设备统称为I/O设备)。
关于计算机系统的详细:
Cpu的四大组件构成:ALU、CU、寄存器和中断系统。
存储器:理想存储器是大容量、高速度和低价位。在计算机系统中存储器的分层结构:寄存器、高速缓存(cache)(用于解决cpu和内存读写速度过于不匹配)、主存(RAM和ROM)、磁盘和磁带。
I/O系统:由I/O软件和I/O硬件组成,前者用于将数据输入主机和将数据计算的结果输出到用户,实现I/O系统与主机工作的协调。I/O硬件包括接口模块和I/O设备。
关于系统中断:利用中断功能,处理器可以在I/O操作执行过程中执行其他指令。
第1章 操作系统引论
操作系统的定义:控制和管理计算机软、硬件资源,合理组织计算机的工作流程,以便用户使用的程序集合。
计算机的四代发展:
(1) 没有操作系统的计算机(没有晶体管,使用机器语言写成的)
(2) 有监控系统的计算机(出现晶体管,使用汇编语言和高级语言,出现了单道批处理系统)
(3) 带操作系统的计算机(出现了小规模的集成电路,出现了多道程序设计技术—相当于系统中断,由于多道程序不能很好的满足用户对响应时间的要求,出现了分时系统。多批道处理系统和分时系统的出现标志着操作系统的形成。)
(4) 多元化操作系统的计算机(出现了大规模集成电路,分布式操作系统)
操作系统的特征
并发性:两个或两个以上的事物在同一个时间间隔内发生。(并行:两个或两个以上的事物在同一时刻发生。并发就是在同一个时间间隔内两个或两个以上的程序都执行了,但在微观上程序仍然是交替进行的)
共享性:计算机中的各种资源供在其上运行的程序共同享用。共享有两种方式:互斥共享和共同共享。(共享以程序的并发执行为条件)
虚拟性:通过某种技术手段把物理实体变成多个逻辑上对应物。
不确定性:操作系统的运行是在一个不确定的环境中进行的。
操作系统的功能
① 进程管理(也成处理机管理);有进程控制、进程同步、进程通信和进程调度。
② 存储器管理(管理的资源是内存):内存的分配、地址映射、内存保护和内存扩充(逻辑扩充,虚拟存储器)
③ 设备管理
④ 文件管理
操作系统类型:
批处理操作系统
分时操作系统
实时操作系统 第2章 进程和线程*
进程的引入
进程:看做是执行着的程序,是分配资源的基本单位(并发执行的程序在一个数据集合上的执行过程)。
线程:计算机中的活动计算单元。
程序并发执行的条件判断:使用Bernstein来进行判断(进程A的写集和进程B的写集、进程A的读集和进程B的写集、进程A的写集和进程B的读集不能有相交的地方,则可以并发执行)。
进程和程序的关系:
(1)进程的动态性和程序的静态性
(2)进程的并发性和程序的顺序性
(3)进程的暂时性和程序的永久性
(4)两者的结构特征不一致(进程由程序、数据和进程控制块组成)
(5)一个进程可以涉及一个或多个程序的执行,一个程序可对应多个进程。
进程的状态和组成
进程的基本状态:
(1)运行状态:正在处理机上运行的状态
(2)就绪状态:获得了除处理机之外的所有必要资源。
(3)阻塞状态:进程由于等待输入输出操作或者某个同步时间而暂停运行时。
三种基本状态的转化:
就绪状态->运行状态:就绪状态的进程获得了处理机
运行状态->就绪状态:进程由于时间片用完转回就绪状态
运行状态->阻塞状态:进程由于进行除时间片用完之外的其他原因而暂停执行
阻塞状态->就绪状态:进程的阻塞原因解除之后。
(进程的挂起状态:将处于阻塞状态的进程换至外村)
进程控制块(PCB):
定义:用于描述进程本身的特性、进程的状态、进程的调度信息以及对资源的占有情况。
进程映像的组成:程序、数据、进程控制块和栈。
(程序和数据是组成进程的实体,PCB用于表示进程的动态特征,栈用于涉及数据传递。)
进程控制块的作用:记录了操作系统所需要的用于描述进程情况及控制运行的全部信息。
(PCB是操作系统中最重要的数据结构)
进程控制
处理机的执行状态:核心态(能执行一切指令)和用户态(具有较低的执行状态)。
操作系统的设计采用了层次结构,其中与硬件紧密相关的模块常驻内存中,用来提高操作系统的运行效率。——这一部分成为操作系统内核(是计算机硬件上扩充的第一层软件)。
原语:由若干条指令构成,用于完成一定功能的过程(是原子操作)——内核采用原语来实现
创建原语要做的工作:
(1)申请空白的PCB
(2)初始化进程描述信息
(3)为进程分配资源、分配存储空间
(4)将新的进程插入就绪队列。
撤销原语要做的工作:
(1)查找撤销进程的PCB
(2)若进程处于运行状态则进行终止
(3)若进程有子孙,应当将子孙进行终止
(4)归还资源 (5)从所在队列移除
阻塞原语需要做的工作:
(1)停止进程的执行
(2)将进程插入阻塞队列
(3)重写调度
唤醒原语需要做的工作:
(1)将进程从阻塞队列解下
(2)把进程插入就绪队列
(3)改变进程在PCB中的状态
线程:
线程的引入:
(传统)进程拥有的两大基本属性:
(1)可以拥有资源的独立单位
(2)可以独立调度和分派的基本单位
由于进程是一个资源的拥有者,所以对进程的各种操作将会付出比较大的时间和空间的开销,所
我们需要把进程的两个基本属性分开,即进程作为独立分配资源的单位,不再作为调度和分派的
基本单位,而是在将线程作为调度和分派的基本单位。
在进程内部包含一个或多个线程,每个线程都能访问该进程的全部资源。
线程的组成:线程标识符、描述处理机状态信息的一组寄存器、栈指针和私有的存储区。
进程和线程之间的关系:一个进程至少拥有一个线程(主线程),每个线程共享进程的进程控制块、程序段和数据段,但是拥有自己的线程控制块和栈。也就是说线程自己基本不拥有资源,只拥有少量的必不可少的资源。
进程和线程的比较:
(1)在调度方面:把进程的两个基本属性分开,提高了系统的并发程度。
(2)在并发性方面:后者更好
(3)拥有资源方面:线程可以调用进程的全部资源
(4)系统开销方面:后者更好
第3章 进程同步和通信*
进程之间的协作关系:互斥、同步和通信
互斥:多个进程不能同时使用一个资源,当某个进程使用某种资源时其他进程必须等待。
同步:多个进程中发生的事情存在某种时序关系,某些进程的执行必须优先于另一个进程。
通信:多个进程之间要传递一定量的信息。
并发原理
虽然操作系统的并发大大提高了CUP的利用率,但是同样带来了许多问题如全局变量的共享会有问题
系统很难去最佳管理资源的分配。
进程的交互:竞争、共享合作和通信合作。(既互斥、同步和通信)
临界资源与临界区
定义:
临界资源:在某段时间内只允许一个进程使用的资源(被访问的资源)
临界区:每个进程中访问临界资源的那段程序。(访问临界资源的代码)
进程访问临界区的一般结构:
每当进程在进入临界区之前要对访问的临界资源进行检查,查看他们是否正在被访问,如果没有被访问则进入该临界区,并设置临界资源的访问限制;否则不能进入临界区。
访问临界区的一般结构: (1)进入区——用于检查临界资源是否被占用,如果没有则设置临界资源的访问权限;否则不
执行
(2)临界区:访问临界资源的程序段
(3)退出区:将临界区正在被访问的变成恢复成未被访问的标志
(4)剩余区:进程中除了上述三个区之外的代码。
临界区进入准则:空闲让进、忙则等待、有限等待(进程不能死等)和让权等待(释放处理机进行等待)。
互斥实现的硬件方法
两种方法:
(1)禁止中断方法:在单处理机上可以
(2)专用机械方法:使用专有指令来解决互斥问题。
互斥实现的软件方法
三种方法:
(1)单标志法:不能“空闲让进”
(2)双标志法,先检查算法后修改:不能保证“忙则等待”
(3)双标志法,先修改后检查算法:可能两个进程都进入不了临界区
信号量和PV操作
信号量的定义结构:
Struct semaphore{
Int value; //某种资源的数目
Struct PCB *queue; //当想访问该资源的进程
}
P操作:(获取资源)
Void wait(semaphores){
S.value=s.value-1; //减少资源数
If(s.value<0){
Block(s.queue); //将进程加入阻塞队列
}
}
v操作(释放资源)
Void signal(semaphore s){
S.value=s.value+1; //资源数增加
if(s.value<=0){
Wakeup(s.quene); //唤醒阻塞进程,将其从等待队列中取出
}
}
使用信号量来解决互斥问题:设置信号量的初值为1,P操作为在进入区时进行,V操作在退出区中进行。
使用信号量来解决同步问题*:如果有两个需要同步进行的进程,p1必须在p2之前进行,我们可以设置一个信号量S,并设计初值为0,v(s)放在p1之后;把p(s)放在p2之前。这样只有p1执行完成之后p2才能获得对应的资源。
信号量的物理意义: