①组成:硬件系统(裸机)、软件系统、系统软件、应用软件
②目标:方便性、有效性、可扩充性、开放性
③功能:处理机管理功能、存储器管理功能、设备管理功能、文件管理功能、操作系统与用户之间的接口
③作用:
未配置操作系统的计算机系统—>单道批处理系统—>多道批处理系统—>分时系统—>实时系统—>微机操作系统
单道批处理系统:只有一个用户作业,作业一个接一个连续执行
多道批处理系统:选取若干个调入内存,共享各种资源,仅共享资源,并没有同时运行
并发,共享,虚拟,异步
并行性是指两个或多个事件在同一时刻发生。并发性是指两个或多个事件在同一时间间隔内发生。
虚拟:将一个物理实体变为若干个逻辑上的对应物
①定义:进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立的基本单位
②进程的特征
① 三种基本状态:
就绪状态(Ready):得到了除CPU以外的所有必要资源。
执行状态(Running):已获得处理机,程序正在被执行。
阻塞状态(Blocked):因等待某事件发生而暂时无法继续执行,从而放弃处理机,使程序执行处于暂停状态。
②
创建状态: 进程已拥有了自己的PCB,但进程自身还未进入主存,即创建工作尚未完成,进程还不能被调度运行,其所处的状态
终止状态:当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,它将进入终止状态。
就绪和执行状态才能互相转换
③ 挂起状态:把一个进程挂起使之处于静止状态,以便研究它的执行情况或对它进行修改
①概念:进程控制块是进程实体的重要组成部分,是操作系统中最重要的记录型数据,在进程控制块PCB(Program Contral Block)中记录了操作系统所需要的、用于描述进程情况及控制进程运行所需要的全部信息
②作用:通过PCB,使得原来不能独立运行的程序(数据),成为一个可以独立运行的基本单位,一个能够并发执行的进程。进程控制块是进程存在的唯一标志
③ 信息
进程标识符:唯一地标识一个进程
处理机状态:保留进程存放在处理器中的各种信息,主要由处理器内的各个寄存器的内容组成
进程调度信息:进程状态、进程优秀级、阻塞原因等等
进程控制信息:程序和数据的地址、进程同步和通信机制、资源清单、链接指针
④ 组织方式
进程控制是对系统中所有进程从产生、存在到消亡的全过程实行有效的管理和控制。
进程控制一般是由操作系统的内核来实现,内核在执行操作时,往往是通过执行各种原语操作来实现的。
①内核
加在硬件上的第一层软件,通过执行各种原语操作来实现各种控制和管理功能,具有创建、撤消、进程通信、资源管理的功能
基本功能:
②原语:是由若干条机器指令所构成,用以完成特定功能的一段程序 。原语在执行期间是不可分割或不可中断的。
创建原语、撤消原语、阻塞原语、唤醒原语
①临界资源:一次仅允许一个进程使用的资源,如打印机、变量
②临界区:每个进程中访问临界资源的那段代码
(1) 空闲让进
(2) 忙则等待
(3) 有限等待
(4) 让权等待
①记录型信号量
记录型信号量是由于采用了记录型的数据结构而得名的。它包含两个数据项,可描述为:
struct semaphore{
int value;
struct process_control_block *L;
}
若信号量s为正值,则s就代表实际还可以使用的物理资源数。
若信号量s为负值,则其绝对值等于信号量链表中已阻塞进程的数目
若加1后仍是S.value≤0,则表示在该信号量链表中,仍有等待该资源的进程被阻塞,故还应调用wakeup原语,将S.L链表中的第一个等待进程唤醒。如果S.value的初值为1,表示只允许一个进程访问临界资源,此时的信号量转化为互斥信号量
②记录型信号量解决生产者-消费者问题
问题描述:
有一群生产者进程在生产产品,并将这些产品提供给消费者进程去消费。为使生产者进程与消费者进程能并发执行,在两者之间设置了一个具有n个缓冲区的缓冲池,生产者进程将它所生产的产品放入一个缓冲区中; 消费者进程可从一个缓冲区中取走产品去消费
semaphore mutex=1,empty=n,full=0;
item buffer[n];
int in=0,out=0;
void proceducer(){
do{
…
producer an item nextp;
…
wait(empty);
wait(mutex);
buffer[in]=nextp;
in=(in+1) % n;
signal(mutex);
signal(full);
}while(ture);
}
void consumer(){
do{
wait(full);
wait(mutex);
nextc = buffer[out];
out = (out+1) % n;
signal(mutex);
signal(empty);
consumer the item in nextc;
}while(ture);
}
void main() {
cobegin
proceducer(); consumer()
coend
}
mutex为互斥信号量,实现对缓冲池的互斥访问,初值为1,取值为0、1
empty,full为资源信号量,为正时表示可用资源的数目;为负时,其绝对值为相应阻塞进程的数目。初值为n,0。可为负
wait(empty)
empty >= 0 则数据送入缓冲区
empty < 0 被阻塞 (满)
signal(empty)
empty > 0
empty <= 0 释放一个空缓冲区,唤醒一个阻塞的生产者进程
wait(full)
full >= 0 则从缓冲区取走数据
full < 0 被阻塞 (空)
signal(full)
full > 0
full <= 0 数据装入缓冲区,唤醒一个
阻塞的消费者进程
注意:
互斥和资源信号量的原语必须成对出现。
signal操作的次序无关紧要,但wait操作的次序不能颠倒,应先对资源信号量,后对互斥信号量 wait 操作,否则会造成死锁
③利用信号量实现前驱关系
P1(){S1; signal(a); signal(b); }
P2(){wait(a); S2; signal(c); signal(d); }
P3(){wait(b); S3; signal(e);}
P4(){wait(c); S4; signal(f); }
P5(){wait(d); S5; signal(g); }
P6(){wait(e); wait(f); wait(g); S6; }
main(){
semaphore a,b,c,d,e,f,g;
a.value=b.value=c.value=d.value=e.value=0;
f.value=g.value=0;
cobegin
P1();P2();P3();P4();P5();P6();
coend;
}
①概念:线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行
②进程和线程对比
进程是资源分配的最小单位,线程是CPU调度的最小单位
③线程类型:内核支持线程、用户级线程
共享存储器系统、管道通信系统、消息传递系统、客户机-服务器系统
⼀个管程定义了⼀个数据结构和能为并发进程所执⾏的⼀组操作,这组操作能同步进程和改变管程中的数据。
管程由管程的名称、局部与管程的共享数据结构说明、对该数据结构进行操作的一组过程、对内部的共享数据初始化语句四部分组成
①调度层次
又称为作业调度、长程调度,用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源,排在就绪队列上。
批处理操作系统中的高级调度。
主要用于多道批处理系统,分时系统和实时系统一般不需要高级调度。
2. 中级调度
又称内存调度,主要目的是为了提高内存利用率和系统吞吐量。
将处于外存交换区中的就绪状态或等待状态的进程调入内存,或把处于内存就绪状态或内存等待状态的进程交换到外存交换区中。
实际上就是存储器管理中的对换功能
3. 低级调度
进程调度、短程调度。
决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。
短程调度程序是操作系统最为核心的部分,短程调度策略的优劣直接影响到整个系统的性能
在三种调度中,进程调度的运行频率最高,作业调度的周期较长,中级调度的运行频率在上述两者之间。
②调度算法的目标
CPU的利用率=CPU有效工作时间/(CPU有效工作时间+CPU空闲等待时间)
2. 批处理系统的目标:
(1)平均周转时间短
(2)系统吞吐量高
吞吐量:单位时间内完成的作业数,与作业的平均长度具有密切关系。
(3)处理机利用率高
响应时间:从用户通过键盘提交一个请求开始至系统首次产生响应为止
4. 实时系统的目标:截止时间的保证、可预测性
截止时间:某任务开始执行的最迟时间,或必须完成的最迟时间
见例题:PPT第三章33-42
①作业:一个比程序更广泛的概念,不仅包含了通常的程序和数据,还配有一份作业说明书。批处理系统中,以作业为基本单位从外存调入内存。
作业步:每一个步骤
作业控制块
作业运行的三个阶段和三种状态
④先来先服务(FCFS)调度算法
按照作业(进程)进入后备队列(就绪队列)的先后次序来挑选作业(进程),先进入先被挑选
算法容易实现,效率不高,只顾及作业(进程)等候时间,没考虑作业(进程)要求服务时间的长短。
有利于长作业(进程),不利于短作业(进程)。有利于CPU繁忙型作业,不利于I/O繁忙型作业
⑤短作业优先(SJF)调度算法
从后备队列中选择估计运行时间最短的作业,调入内存运行
优点:
降低作业的平均等待时间,提高系统吞吐量。
缺点:
对长作业不利,有可能长期不被调度;
完全没考虑作业的紧迫程度(某些特殊的);
用户做出的估计时间带有很大的主观性。
⑥高响应比优先(HRRN)调度算法
每当要进行调度时,系统计算每个作业的响应比,选择其中R最大者投入执行。
既照顾了短作业,又考虑了作业到达的先后顺序,还不会使长作业长期得不到服务。
该调度算法改进了FCFS和SJF算法的缺点。
①调度的任务:保存处理机的现场信息、按某种算法选取进程、把处理器分配给进程
②进程调度机制
③进程调度的方式:非抢占方式、抢占方式
④轮转调度算法
⑧死锁概念:所谓死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,他们都将无法再向前推进
定义:如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的(deadlock)
②产生死锁的必要条件:
③产生死锁的原因:
④处理死锁的方法:(1)预防死锁(2)避免死锁(3)检测死锁(4)解除死锁
通过设置某些限制条件来破坏产生死锁的四个必要条件中的一个或几个,来预防发生死锁
通过两种协议来实现
第一种协议:资源静态分配法
一个进程必须在执行前就申请它所要的全部资源,并且直到它所要的资源都得到满足后才开始执行
第二种协议:
允许进程只获得运行初期所需的资源,便开始运行。这些资源使用完毕并全部释放,再申请新的所需资源。
采用剥夺控制
当进程在申请资源未获准许时,先主动释放已占有的资源,然后才去等待,以后再一起向系统提出申请
一般只适用于可剥夺性资源,如CPU、存储区
资源顺序分配法
对系统的全部资源编号,并规定进程申请资源时只能按升序进行
①系统安全状态:是指系统能按某种顺序为每个进程分配其所需的资源,使每个进程执行完毕
安全序列:进程安全执行完的顺序
如果系统无法找到这样一个安全序列,则称系统处于不安全状态
②银行家算法避免死锁
实例:书 P113
程序装入的三种方式:绝对装入方式、可重定位装入方式、动态运行时装入方式
静态链接、装入时动态链接、运行时动态链接
可分为四类:单一连续分配、固定分区分配、动态分区分配、动态可重定位分区分配
紧凑的概念和目的:为了解决碎片问题,可采用的一种方法是,将内存中所有作业进行移动,使他们相邻接。这样,原来分散的多个小分区便拼接成一个大分区,从而就可以把作业装入运行,通过这种移动,把多个分散的小分区拼接成大分区的方法被称为紧凑。进行拼接的目的是为了提高内存的利用率。
所谓“对换”, 是指把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据,调入内存
①页面:把每个作业(进程)逻辑地址空间划分成若干大小相等的片.第0页、第1页
②物理块:把内存空间分成与页面相同大小的若干个存储块。 0#块、1#块
③页面碎片:由于进程的最后一页经常装不满一块而形成了不可利用的碎片
④页面太小,提高了内存利用率,但是增长了页表。较大减少了页表长度,但增大了页面碎片。页面的大小应选择得适中,且页面大小应是2的幂,通常为512 B~8 KB
⑤地址结构
⑥页表的作用是实现从页号到物理块号的地址映射
⑦地址变换机构
借助于页表,实现从逻辑地址到物理地址的转换
基本的地址变换机构和具有快表的地址变换机构
⑧分页的逻辑地址到物理地址的映射转换
⑨联想存储器又叫快表
①分段存储管理的逻辑地址到物理地址的映射转换
段表中基址加上位移量
②分页和分段的主要区别
(1) 页是信息的物理单位,由于系统管理的需要。段则是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好地满足用户的需要。
(2) 页的大小固定且由系统决定,而段的长度却不固定,它由其完成的功能决定。
(3) 分页的作业地址空间是一维的而分段的作业地址空间则是二维的,程序员在标识一个地址时,需给出段名和段内地址。
(4)由于段是信息的逻辑单位,因此便于存贮保护和信息的共享,页的保护和共享受到限制。
③页式存储和段式存储,访问一次数据需要读取 2 次内存,段页式需要读取 3 次内存
①原理:先将程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名
①定义:所谓虚拟存储器, 是指具有请求调入功能和置换功能, 能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。
②特征:离散性、多次性、对换性、虚拟性
①请求分页系统是在分页系统的基础上,增加了请求调页功能、页面置换功能所形成的页式虚拟存储系统。
②硬件支持:请求页表机制、缺页中断机制、地址变换机构
把选择换出页面的算法称为页面置换算法,应该把那些以后不再会访问的页面换出,或者把那些停留较长时间而不会再访问的页面调出,最终的目的是达到一个较低的页面更换频率
①最佳置换算法(OPT)
调入一页而必须淘汰一个旧页时,所淘汰的页应该是以后不再访问的页或距现在最长时间后再访问的页
无法预知在进程中那个页面是未来最久时间不再被访问,因此,算法无法实现
②先进先出(FIFO)页面置换算法
③最近最久未使用(LRU)置换算法
最少使用置换算法(LFU)
产生抖动原因:页面淘汰算法不合理、分配给进程的物理页面数太少
预防抖动:采用局部置换策略、把工作集算法融入到处理机调度中、选择暂停的进程、利用“L=S”准则调度缺页率
①基本功能:隐藏物理设备的细节、与设备的无关性 、提高处理机和I/O设备的利用率 、对I/O设备进行控制、确保对设备的正确共享、错误处理
②按数据存储和传输单位分类,设备可分为块设备和字符设备
按使用特性分类:
按传输速率:低速、中速、高速
①定义:通道是独立于CPU的专门负责数据输入/输出传输工作的处理机,对外部设备实现统一管理,代替CPU对输入/输出操作进行控制,从而使输入,输出操作可与CPU并行操作
②目的:为了使CPU从I/O事务中解脱出来,同时为了提高CPU与设备,设备与设备之间的并行工作能力
③通道类型:字节多路通道、数组选择通道、数组多路通道
④瓶颈问题:
解决方法:增加设备到主机的通路而不增加通道:即把一个设备连接到多个控制器上,一个控制器连接到多个通道上
①使用轮询的可编程I/O方式、使用中断的可编程I/O方式、直接存储器访问方式、I/O通道控制方式
②直接存储器访问方式的特点:
①定义:也称为设备无关性。 其基本含义是: 应用程序独立于具体使用的物理设备。
②实现:为每个设备所配置的设备驱动程序是与硬件紧密相关的软件。再在设备驱动程序之上设置一层软件,称为与设备无关的I/O软件,或设备独立性软件
①定义:多道程序环境中,用程序来模拟脱机输入时的外围控制机功能。
②特点:
(1)提高了I/O的速度。
(2) 将独占设备改造为共享设备。
(3) 实现了虚拟设备功能。
FCFS 不会出现饥饿现象,SSTF可能会出现,SCAN避免了出现
①先来先服务FCFS
原理:根据进程请求访问磁盘的先后次序进行调度。
②最短寻道时间优先SSTF
原理:选择有距当前磁头所在磁道最近的访问磁道的进程。
③SCAN算法——电梯调度算法
原理:选择与当前磁头移动方向一致且距离最近的进程
④循环扫描(CSCAN)算法
原理:规定磁头单向移动
文件系统管理的对象:文件、目录和磁盘存储空间
按文件的性质和用途分为:系统文件,库文件,用户文件
按文件中数据的形式分类 :源文件,目标文件,可执行文件
按存取控制属性分类:只执行文件,只读文件,读写文件。
按组织形式和处理方式:普通文件,目录文件,特殊文件
按逻辑结构来分:有结构文件、无结构文件
按组织方式来分:顺序文件、索引文件、索引顺序文件
最底层是对象及其属性、中间层是对对象操纵和管理的软件集合、最高层是文件系统提供给用户的接口
①概念:
文件的逻辑结构(文件的组织):从用户角度看到的文件的全貌,也就是它的记录结构。
文件的物理结构(文件的存储结构):文件在外存上的存储组织形式。
②分类
按是否有结构分类
按文件的组织方式分类
(1) 实现“按名存取”。
(2) 提高对目录的检索速度。
(3) 文件共享。
(4) 允许文件重名。
①文件控制块
②索引节点
磁盘索引结点:每个文件有唯一的磁盘索引结点。
磁盘索引节点包含:文件主标识、文件类型、文件存取权限、文件物理地址、文件长度、文件连接计数、文件存取时间
内存索引结点:索引结点编号、状态、访问计数、文件所在设备的逻辑设备号、链接指针:空闲链表、散列队列指针
①基于索引结点的共享方式
②利用符号链实现文件共享
文件的物理结构和外存的组织方式有关,常用的外存组织方式:连续组织方式、链接组织方式、索引组织方式
链接组织方式:隐式链接和显式链接
①FAT
采用的文件分配方式基本上都是类似于显式链接方法
②NTFS:64位地址
③索引组织方式:单级索引分配、多级索引分配、混合索引方式
①0表示空闲,1表示以分配
②盘块的分配
盘块号计算(第i行,第j列):b=n(i-1)+j
n为每一行的列数
③盘块的回收
UNIX中采用的是成组链接法
用户接口、程序接口、网络用户接口
(1) 运行在不同的系统状态。
(2) 通过软中断进入。
(3) 返回问题。
(4) 嵌套调用。