操作系统学习笔记

什么是操作系统?教材上给的定义是:OS是一组控制和管理计算机硬件资源地对各类作业进行调节,以方便用户使用的程序的集合。

第一章

OS的可以通过命令方式系统调用方式(程序员的接口)图标窗口方式三种方式来实现与操作系统的通信。

其主要功能也可概括为:对处理机、存储器、I/O设备以及文件(数据和程序)进行有效的管理,并为用户提供接口。

OS的发展过程----几类典型操作系统(单、多道批处理、分时、实时),每类操作系统的原理、特征(优缺点)。

单道批处理系统:没有人机交互能力。

多道批处理系统:
原理:在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。

特征(优缺点):

(1)资源利用率高
(2)系统吞吐量大
(3)平均周转时间长
4)无交互能力

分时系统:
原理:允许多个联机用户同时使用一台计算机系统进行计算的操作系统称为分时系统。

特征(优缺点):

(1)多路性
(2)独立性
(3)及时性
(4)交互性

实时系统:
原理:实时系统是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行。

特征(优缺点):

(1)多路性
(2)独立性
(3)及时性
(4)交互性
(5)可靠性

OS的基本特性(并发、共享、虚拟、异步)----其中“并发”是最重要的特性。

其英文单词分别为Concurrence,Sharing,Virtual,Asynchronism,记忆单词首写很容易牢记这四个特性。

并发和并行是两个不同的概念。并行是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。


第二章

进程和程序区别
(1)进程是一个动态概念,强调执行的过程,每个进程中包含了程序段和数据段两个部分,以及进程控制块PCB;而程序是一个静态概念,程序是指令的有序集合,无执行含义;
(2)进程具有并行特征(独立性,异步性),程序则没有;

(3)一个进程可以执行多个程序(如Linux中通过exec调用),同一程序的多次执行将产生多个不同的进程。同一个程序的一次执行也可产生多个进程(如在程序中多次调用Linux中的fork)。

进程的四个特性:动态性,并发性,独立性,异步性。


进程的三种状态之间的转换:

操作系统学习笔记

什么是PCB,PCB包含的主要信息,PCB的作用

为了描述个和控制进程的运行,系统为每个进程定义了一数据结构——进程控制块PCB(Process Control Block)。PCB中主要包括下述四方面的信息:

进程标识符:内部标识符,外部标识符
处理机状态
进程调度信息
进程控制信息
PCB的作用:
① PCB是系统只为每个进程定义的一个数据结构,是为了使程序(含数据)能独立运行,为之配置的一进程控制块(Process Control Block);

② PCB、程序段和相关的数据段三部分构成了进程实体,创建进程,实质上是创建进程和实体中的PCB,而撤销进程,实质上是撤销进程的PCB;PCB是为了保证程序的并发执行;

③ PCB使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。

一言以蔽之,使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。


新进程的创建过程

1)申请空白PCB,为新进程申请获得唯一的数字标识符,并从PCB集合中索取一个空白PCB

2)为新进程分配其运行所需的资源

3)初始化PCB

4)如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。

临界区:每个进程中访问的临界资源的那段代码成为临界区。

进程同步机制遵循的原则

1、空闲让进  2、忙则等待  3、有限等待  4、让权等待

 什么是信号量

       信号量是Dijkstra提出的用于解决进程同步的有效工具。信号量是一个数据结构以及对其的操作。除初始化外,仅能通过两个标准的原子操作wait(S)he signal(S)来访问。两个语句在执行到一半的时候不能被中断。

什么是P操作、什么是V操作(P、V操作的处理流程,以记录型信号量为例)

P(S):wait(S)

每次wait操作,意味着进程请求一个单位的该类资源,使系统可供分配的该类资源数减少一个。
① 将信号量S的值减1,即S.value:=S.value-1;
② 当S.value<0时,表示该类资源分配完毕,进程调用block原语,进行自我阻塞,放弃处理机,并插入到信号量链表中。

V(S):signal(S)

每次signal操作,表示执行进程释放一个单位资源,使系统中可供分配的该类资源数增加一个
① 将信号量S的值加1,即S.value:=S.value+1;

② 如果S.value<=0,表示在该信号量链表中,仍有等待该资源的进程被阻塞,故还应调用wakeup原语,将链表中的第一个等待进程唤醒。



 描述可如下:

wait(S){

while(S<=0);

S--;

}

signal(S){

S++;

}


操作系统学习笔记


用信号量和P、V操作机制实现互斥和同步的方法,信号量取值的含义

利用信号量和PV操作实现进程互斥时应该注意的是:

(1)每个程序中用户实现互斥的P,V操作必须成对出现,先做P操作,进临界区,后做V操作,出临界区。若有多个分支,要认真检查其成对性。
(2)P,V操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环。
(3)互斥信号量得初值一般为1

其中信号量S用于互斥,初值为1。


利用信号量和P V操作实现进程同步

PV操作是典型的同步机制之一。用一个信号量与一个消息联系起来,当信号量的值为0时,表示期望的消息尚未产生;当信号量的值非0时,表示期望的消息已经存在。用PV操作实现进程同步时,调用P操作测试消息是否到达,调用V操作发送消息。

使用PV操作实现进程同步时应该注意的是:
(1)分析进程间的制约关系,确定信号量种类。在保持进程间有正确的同步关系情况下,哪个进程先执行,那些进程后执行,彼此间通过什么资源(信号量)进行协调,从而明确要设置那些信号量。
(2)信号量的初值与相应资源的数量有关,也与P,V操作在程序代码中出现的位置有关。

(3)同一信号量的P,V操作要成对出现,但他们分别在不同的进程代码中。

  (4)互斥信号量一般要在资源信号量之后。

  PV操作特点:简单而且表达能力强能解决任何进程同步问题,缺点:不安全,容易出现死锁现象。

进程是资源拥有者,而线程是为了提高程序并发执行的调度(调度和分派的基本单位)。


第三章

点击打开链接

死锁产生的两种原因:竞争资源;进程推进顺序不当。

产生死锁的必要条件:互斥条件;请求和保持条件;不可抢占条件;循环等待条件。

静态策略:预防死锁:

1)破坏请求和保持条件:一次性申请其在运行过程中所有的资源

2)破坏不可抢占条件:释放已经保持了的资源

3)破坏循环等待条件

动态策略:银行家算法


S为死锁的充分条件:当且仅当S的资源分配图是不可完全简化的。

死锁的解除:重新启动;撤销进程;剥夺资源;进程后退。