操作系统

第一章

1.操作系统概念

操作系统的定义
操作系统是计算机系统中的一个系统软件,是能有效地组织和管理计算机系统中的硬件和软件资源,合理地组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够灵活、方便、有效地使用计算机,并使整个计算机系统能高效地运行的一组程序模块的集合。
2.基本特征

操作系统的四个基本特征:并发,共享,异步,虚拟。

并发:是指两个或多个事件在同一时间间隔内发生。

共享:是指系统中的资源(硬件资源和信息资源)可以被多个并发执行的程序共同使用,而不是被其中一个独占。资源共享有两种方式:互斥访问和同时访问。

异步:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底。而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

虚拟:虚拟性是一种管理技术,把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物的技术。

第二章

1.进程控制块PCB

PCB(process control block),进程控制块,是我们学习操作系统后遇到的第一个数据结构描述,它是对系统的进程进行管理的重要依据,和进程管理相关的操作无一不用到PCB中的内容。一般情况下,PCB中包含以下内容:

(1)进程标识符(内部,外部)
(2)处理机的信息(通用寄存器,指令计数器,PSW,用户的栈指针)。
(3)进程调度信息(进程状态,进程的优先级,进程调度所需的其它信息,事件)
(4)进程控制信息(程序的数据的地址,资源清单,进程同步和通信机制,链接指针)

2.进程的基本状态

创建状态:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态

就绪状态:进程已经准备好,已分配到所需资源,只要分配到CPU就能够立即运行

执行状态:进程处于就绪状态被调度后,进程进入执行状态

阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用

终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行

3.进程和程序的区别

①进程是动态的,而程序是静态的。
②进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。
③1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。
④进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。

4.进程同步与进程互斥以及利用

同步:协作的过程,例如,多人开发合作;

互斥:争抢资源的过程,例如苦逼的大学选课;

互斥与同步的概念

在多道程序环境下,系统中可能有许多并发的进程,在这些进程之间存在以下两种关系:间接相互制约关系、直接相互制约关系。

间接相互制约关系

多个进程彼此无关,它们并不知道其他进程的存在。由于各进程要求共享资源,而有些资源需要互斥使用,因此各个进程间竞争使用这些资源,进程间的这种关系称为进程的互斥。

直接相互制约关系

多个进程间知道对方的存在,表现出来的是一种相互合作的关系。此时要保证相互合作的各个进程在执行次序上的协调,不会出现与时间有关的差错。系统中多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务,进程间的这种关系称为进程的同步

实现进程互斥的基本原则

1.、空闲让进
当临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区。
2、忙则等待
当已有进程进入临界区时,其他试图进入临界区的进程必须等待。
3、有限等待
对请求访问的进程,应保证能在有限时间内进入临界区(保证不会饥饿)。
4、让权等待
当进程不能进入临界区时,应立即释放处理机,防止进程忙等待。

5.pv操作实现进程同步和进程互斥

pv操作实现进程的同步

两进程协作完成一件事,我们叫同步。
设有a,b两进程共用一个变量x,a负责算数得到x的结果,然后把结果传给b,b负责把结果x打印出来。这里我们需要两个信号量S1,S2,初值为1,0。(S1给a用,S2给b用)
要完成这次任务
执行P(S1)→得到结果→V(S2)→P(S2)→打印结果→V(S1)

P(S1)表示a进程要工作了,把它对应的信号量S1置0,表示a进程不可用正在工作中。
得到结果后,V(S2)把S2置1,表示b可以开始工作。
P(S2)表示b进程要工作了,把它对应的信号量S2置0。
打印出结果后,V(S1)讲S1置1,表示任务完成,a进程可以开始下一轮的工作了。

pv操作实现进程的互斥

为使多个进程互斥地访问某临界资源,须为该资源设置互斥信号S,并设其初始值为1,然后将各进程访问资源的临界区置于p操作和v操作之间即可。

P操作是申请使用资源的操作,假设我要使用打印机了,就进行P(S),这样之后,S的值就会减1变成0,S的值为0表示打印机也就是资源不可用。

如果另一个人要使用也是先进行P(S),由于S为0资源还不能用,这样S的值会变成-1,表示他暂时没能使用而在排队,信号量S为负数时其绝对值表示阻塞队列中等待该资源的进程数。

如果没人在排队,当我用完打印机后就执行V操作,V操作表示释放资源,V(S)就让信号量S由0加1变成了1,这样后来者就可以用打印机了。
若有1人在排队,那S就变0,这个后来者直接使用打印机,使用完后再V操作,S会变1。

6.pv操作实现多个生产者消费者问题

https://blog.csdn.net/u014174955/article/details/44022391

第三章

1.进程调度算法

主要掌握fifo以及lru算法

第四章

1.不同的存储器管理方案

 

2.分区分配算法

①首次(最先)适应分配算法是将未分配分区表按地址递增的顺序排列,每次分配时,从空闲分区表的第一个表目开始顺序查找空闲分区表,找到第一个能满足作业长度要求的空闲区,分割这个空闲区,把能够满足要求的空闲区分配给作业。
该算法简单,尽可能地利用了低地址空间,把较大的空闲分区保留在内存高端,有利于大作业的分配。但随着低端分区不断地划分而产生过多的小地址碎片,每次分配时查找时间开销会增大,同时降低了主存空间的利用率。

②循环首次适应算法每次分配时,总是从上次扫描结束处顺序查找空闲分区表(链),找到第一个能满足长度要求的空闲区为止。分割这个找到的空闲分 区,一部分分配给作业,另一部分仍为空闲区。

这一算法是最先适应分配算法的一个变种,能使得存储空间的利用率更加均衡,不会导致小的空闲区集中在存储器的 一端,但这会缺乏大的空闲分区。
③最佳适应分配算法是将未分配分区表按照分区的大小从小到大进行排列,每次分配时,自表头顺序开始查找到第一个满足要求的空闲分区。这样可保证不去分割一个更大的区域,使装入大作业时比较容易得到满足。
该算法的特点是可以解决大作业的分配问题;但是容易产生不可利用的小空闲区,降低了主存空间的利用率。
④最差(坏)适应分配算法是将未分配分区表按照分区的大小从大到小进行排列,每次分配时,只要看第一个分区能否满足作业要求,若可以,将该分区分配给作业使用,否则作业不能执行。
该算法的优点是查找效率很高;可使剩下的空闲区不至于太小,对中、小作业有利,对于大作业不利。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值