标签:type 并行 集合 strong 策略 base 磁盘 影响 text
注:本文内容总结自《计算机操作系统》第四版(汤小丹等人编著)。本文由博主同步发布于:https://blog.csdn.net/donotgogentle/article/details/106930437
操作系统是配置在计算机硬件上的第一层软件。其作用是:
具体为:
进程是指在系统中能独立运行并作为资源分配的基本单位,它是由程序段、相关的数据段、进程控制块(Process Control Block,PCB)组成的。
活动阻塞通过挂起进入静止阻塞状态,活动就绪通过挂起进入静止就绪状态,而挂起这一操作是由OS将暂时不能运行的进程调入外存。也就是说这两个状态下,进程并没有在内存中,而是在外存中。
一项作业被调度时,是OS将该作业调入内存,并为之创建进程,分配资源,进入就绪队列。
操作系统为每个进程定义了一个进程控制块。进程控制块作为进程实体的一部分,记录了操作系统所需要的,用于描述进程当前情况以及管理进程运行的全部信息。
通常,将一些与硬件紧密相关的模块、各种设备的驱动程序以及运行频率较高的模块,安排在紧靠硬件的软件层次中,将它们常驻内存,即,OS内核。
为防止OS本身及关键数据遭到应用程序的破坏,通常将处理机的执行状态分为两种:
mutex为互斥信号量,初值为1,范围(-1,0,1)。
一个管程定义了一个数据结构,和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。
管程被请求和释放资源的进程所调用。
asfdasdfas
线程又程轻型进程。
(1)内核支持线程(Kernel Supported Threads)
内核支持线程的创建、撤销、切换、阻塞都是在内核空间进行,由内核对每个线程设置的线程控制块对其进行控制。
优点:
缺点:
(2)用户级线程(User Level Threads)
在用户空间实现,对线程的控制无需内核帮助,内核甚至不知道它的存在。
优点:
缺点:
(3)组合方式
内核支持多个内核支持线程的创建、调度和管理等,同时允许应用程序创建、调度、管理用户级线程。一些内核线程对应多个用户级线程,即,用户级线程对部分或者全部内核支持线程进行时分多路复用。
分为多对一、一对一、多对多(用户级线程数 >= 内核支持线程)。
优点(多对多):
又称作业(长程)调度,调度对象是作业。根绝算法,决定将外存上处于后备队列的哪些作业调入内存,为其创建进程、分配资源,放入就绪队列。
又称进程(短程)调度,调度的对象是进程或内核支持线程。根据调度算法,决定哪个进程获得处理机。
又称内存调度。把暂时不能运行的进程调入外存,即改为挂起状态,当这些进程具备运行条件时,再把他们重新调入内存,即改为就绪状态。
作业的三种状态:
调度算法:
(1)先来先服务(FCFS)调度算法
first-come first-served,优先级 == 作业等待时间
(2)短作业优先算法
优先级 == 作业需要时间短的优先级高
需要预知作业工作时间,对长作业不利,没考虑到紧迫性作业
(3)高响应比优先级调度算法
优先级 == (等待时间+要求服务时间)/要求服务时间
进程调度的任务:
进程调度方式:
将处理机分配给某进程后,就让其运行到结束。
基于优先原则,去暂停某个正在运行的进程,将其分配给另一个优先级更高的进程。
(1)轮转调度法:
在轮转法(round robin,RB)中,系统根据FCFS策略,将所有的就绪进程排成一个就绪队列,并设置每隔一定时间间隔即产生一次中断,激活系统中的进程调度程序,完成一次调度,将CPU分配给队首进程(或新的紧急进程),令其执行,当该进程的时间片耗尽或者运行完毕后,系统将再次将CPU分配给新的首进程。
时间片的大小对系统性能有很大影响。时间上一般取略大于一次典型的交互所需要的时间,使大多数交互式进程能在一个时间片内完成。
(2)优先级调度算法:
如果一组进程中的每一个进程都在等待,该组进程中的其他进程释放所占有的资源后,才能运行,那么该组进程是死锁的。
避免死锁-银行家算法:
用到的数据结构:
银行家算法首先执行安全性检测,若能确定分配资源后系统处于安全状态,则分配,否则让进程等待。
安全性检测:当检测到进程 P 对资源的请求,算法尝试将资源分配(不是真的分配,仅用于计算安全性)给 P,若 Available能满足 P 的需求(P 的需求必须小于 Need,否则认为出错),直接分配,并回收 Max
资源 进程 |
Max |
Allocation |
Need |
Available |
|
A B C |
A B C |
A B C |
A B C |
P0 |
7 5 3 |
0 1 0 |
7 4 3 |
3 3 2 |
P1 |
3 2 2 |
2 0 0 |
1 2 2 |
|
P2 |
9 0 2 |
3 0 2 |
6 0 0 |
|
P3 |
2 2 2 |
2 1 1 |
0 1 1 |
|
P4 |
4 3 3 |
0 0 2 |
4 3 1 |
检测此时刻安全性(可能的序列):
(1)Available(3, 3, 2)分配给P3(0, 1, 1), P3完成,归还资源,Available(5, 4, 3)
(2)此时P1,P4均可完成,设分给P1,故分配+归还,Available(7, 4, 3)
(3)此时剩余进程均可完成,继续按照上述步骤,得到存在的可能的安全序列:{P3, P1, P4, P2, P0}
(4)判定分配资源后系统安全,可以分配资源
主要用于备份主存中常用的数据,以减少处理机对主存的访问次数,从而提高程序执行速度。基于程序执行的局部性原理:一段较短时间内,程序执行局限于某部分。
简称内存或主存,用于保存进程运行时的程序和数据。为缓和 CPU 指令执行速度与主存储器访问速度的矛盾,引入了高速缓存和寄存器。
磁盘 I/O 速递远低于主存访问速度,为缓和这个矛盾,设置磁盘缓存。它是利用主存中的存储空间暂时存放从磁盘中读取的信息。
该分配方式为用户程序分配一个连续的内存空间,即,程序中代码或者数据的逻辑地址相邻,体现在内存空间分配时物理地址的相邻。连续分配方式分为四类:
(1)单一连续分配 :内存分为系统区和用户区,用户去内存中仅装有一道用户程序。
(2)固定分区分配 :将用户空间划分为若干个固定大小的区域,每个分区中之装入一道作业。分区大小的划分有大小相等和大小不等两种方法,后者把分区分为小分区、中分区、大分区等,相比于方式一能够减少碎片。
(3)动态分区分配 :根据进程的需要动态分配内存空间。基于该分配方法,有:
首次适应(first fit,FF)算法:从空闲分区链头部顺序找起,找到第一个能满足进程要求的分区大小,在该分区中动态为其分配一块内存空间,剩余部分仍然留在空闲分区链。
循环首次适应(next fit,NF)算法:从上次找到的地方开始找起。若找到链表尾部还没找到,则返回链表头部,从头找起。
最佳适应(best fit,BF)算法:能满足要求,大小是最小的分区被优先分配。
最坏适应(worst fit,WF)算法:能满足要求,且大小是最大的分区被优先分配。
用户程序要想在系统中运行,必须将其装入内存,并为它分配内存空间。连续分配存储往往导致碎片,浪费存储。
分页方式将用户程序的地址空间分为若干个大小固定的区域,称为“页”,典型大小为1KB。相应的也将内存空间分为若干物理块,块大小与页大小相等。系统为每个进程建立一张页表,记录了相应页在内存中对应的物理块号。
快表:
页表存放在内存中,这使得CPU每次存取一个数据都要访问两次内存,第一次根据页号在页表中查找得到物理块号,将该块号与页内偏移地址拼接才能形成物理地址,第二次才从物理地址读写数据。为提高地址变换速度,出现了快表。在CPU给出有效地址后,由地址变换机构将页号送入高速缓存,将此页号与其中的所有页号进行比较,若匹配,直接在该快表上得到页号对应的物理块地址,并将该地址与业内地址进行拼接得到物理地址,送入物理地址寄存器,从而在相应物理地址上读写。若未命中,才访问内存中的页表。
作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。
分段和分页的区别:
页是信息的物理单位,分页是系统的行为,用户不可见。分段中的段是逻辑单位。
页大小固定,由系统决定。段的长度不固定,由用户编写的程序决定。
先将程序分段,再将每个段分成若干个页。由段号和段表起始地址指出对应的页表起始地址,由段内页号和对应的页表定位块号,由块号和页内地址构成物理地址。
有的作业很大,所要求的内存空间超过了内存总容量,虚拟存储器便是为此而生。虚拟存储器是基于程序运行的局部性原理,应用程序在运行前并不需要全部装入内存,仅仅将当前需要运行的少数页面或者段装入内存便可运行。程序运行时,如果它所需要的段(页)已经在内存,便能继续执行,否则,发出缺页(段)中断请求,此时OS利用请求调页(段)功能将这些页(段)调入内存,以使进程继续运行下去。如果此时内存已满,OS再利用页(段)的置换功能,将内存中暂时不用的页(段)调至盘上,腾出内存空间后,再将要访问的页(段)调入内存。
选择的淘汰页是以后永久不使用或者最长时间内不再被访问的页面。
总是淘汰最先进入的页。
淘汰最近最久未使用的页。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来经历的时间t,淘汰时选择t最大的页淘汰。
记录每个页面被访问的频率,选择在最近时期使用最少的页淘汰。
同时运行在系统中的进程太多,造成分配给每个进程的物理块太少,不能满足程序正常运行的需求,致使每个进程频繁地出现缺页,从而每个进程大部分时间都用于页面的换进/换出,几乎不能做有效的工作,从而导致处理机的利用率急剧下降并趋近于0。
工作集是某段时间间隔内,进程实际要访问页面的集合。在不同时间,工作集所含页面数不同。
L=S准则:
L为缺页之间的平均时间,S为平均缺页服务时间,如果L>S,说明很少缺页,但处理机利用率低,如果L<S,说明频繁缺页。只有当L=S时,磁盘和处理机能达到它们最大的利用率。
标签:type 并行 集合 strong 策略 base 磁盘 影响 text
原文地址:https://www.cnblogs.com/icky1024/p/os-base.html