操作系统知识点复习总结

  • 格式: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才能获得对应的资源。

信号量的物理意义: