ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:110.65KB ,
资源ID:17208976      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17208976.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统学习总结Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统学习总结Word文档格式.docx

1、分布式系统有可扩展性,高可靠性。二 、第二章操作系统的运行基础与结构1.处理机的状态 即中央处理机的工作状态,分为管态和用户态。管态是操作系统的程序 执行时的状态,可以使用全部指令和全部系统资源。用户态是用户程序执行 时的状态,禁止使用特权指令,只允许用户程序。2.中断技术 所谓中断是指某个事件发生时,系统中止现行程序的运行、引出处理事 件程序对该事件进行处理,处理完毕后返回断点,继续执行。不期待的中断 为强迫性中断,期待的中断为自愿中断。由处理机外部事件引起的中断叫做 中断,内部引起的为俘获。中断发生时需要保护现场,把现场信息保存在主 存。中断结束时, 把保留的该程序现场信息从主存中送至相应

2、的指令计数器、 通用寄存器或一些特殊的寄存器中恢复现场中断有以下分类:访管中断 对操作系统提出某种需求时所发出的中断 操作系统的运行基础与结构 中断技术 输入输出中断 I/O 传输结束或出错中断 外中断 时钟中断、通信中断等机器故障中断 电源故障、主存取指令错等 程序性中断 定点溢出、用户态下用核态指令、非法操作等3.操作系统虚拟机 在裸机上配置了操作系统程序后就构成了操作系统虚拟机。三、第三章操作系统的用户界面1.系统生成和系统初启 系统生成就是通过组装一批模块来产生一个清晰的、 使用方便的操作系统 的过程。系统引导的任务是将操作系统的必要部分装入主存并对系统进行初始化 工作,最终使系统处于

3、命令接收状态。系统引导有两种方式,将 OS 核心文件存储在系统本身的存储设备中的是 独立引导方式 (滚雪球方式 ),OS 主要文件不放在系统本身的存储设备中的是辅 助下装方式。独立引导方式 (滚雪球方式)的过程:O1初始引导(系统加电,进行自检,读入引导程序)0 2引导程序执行03核心初始化04系统初始化Linux 系统初启: Linux 系统是以滚雪球的方式启动加电或复位t BIOS的启动t Boot Loader宀OS初始化2.用户界面用户界面 (或称接口 ) 是操作系统提供给用户与计算机打交道的外部机制 操作系统提供两种用户界面: 操作界面 (命令接口 )和系统功能服务界面 (程序接口)

4、操作命令与操作系统类型的关系:作业控制语言一一批处理操作系统键盘命令一一分时操作系统,个人计算机操作系统 图形用户界面一一分时操作系统,个人计算机操作系统 实例操作系统提供的用户界面(用户接口):MS-DOS 键盘命令,系统功能调用Win dows 图形用户界面,系统功能调用Linux (UNIX) 键盘命令(XWindow),系统功能调用4.系统调用系统功能调用是用户在程序一级请求操作系统服务的一种手段, 它是带有一定功能号的“访管指令”。其功能是由操作系统中的程序完成的。应用程序如何调用操作服务功能 ?采用统一进管方式一一系统提供访管指 令、访管中断,将系统调用作为 C库的一部分,执行到这

5、一条命令时, 发生中 断,由用户态转为管态四、第四章进程及进程管理1.进程定义所谓进程,就是一个程序在给定活动空间和初始环境下,在一个处理机上 的执行过程。进程与程序的区别:程序是静态的概念;进程是动态的概念进程是一个独立运行的活动单位进程是竞争系统资源的基本单位一个程序可以对应多个进程。2.进程的状态进程描述:进程由进程控制块和程序与数据组成。进程控制块是描述进程与其他进程、系统资源的关系以及进程在各个不 同时期所处的状态的数据结构,称为进程控制块 PCB主要内容有进程标识符,进程当前状态,当前队列指针next,进程优先级,CPU现场保护区, 占有资源清单,家族联系,通信信息。3.进程控制

6、进程控制的职责是对系统中的进程实施有效的管理, 负责进程状态的改变。 常用的进程控制原语有创建原语、撤消原语、阻塞原语、唤醒原语。进程创建:进程创建原语的形式 create (name , priority) ,进程创建原语的实现时向系统申请一个空的PCB结构,如果有空PCB将入口信息填入 PCB相应项,然后 将PCB入就绪队列。进程撤销:进程撤销原语的形式 Kill (或exit),能够撤消当前运行的进程。将该进程的PCB结构归还到PCB资源池,所占用的资源归还给父进程。 进程撤销实现时由运行指针得当前进程的 pid,释放本进程所占用的资源给父进程, 最后释放PCB结构。进程等待:进程等待原

7、语的形式 susp(chan),中止调用进程的执行,并加入到等待chan 的等待队列中;最后使控制转向进程调度。过程为保护进程的 CPU现场到PCB 结构中,置该进程为”等待”状态,将该进程 PCB结构插入到等待队列中,最后转进程调度。进程唤醒:当处于等待状态的进程所期待的事件来到时,由发现者进 程使用唤醒原语叫唤醒它。进程唤醒原语的形式 wakeup(chan),当进程等待的事件发生时,唤醒等待 该事件的进程。 找到该等待队列, 将队列首进程移出此等待队列, 将该进程置 为”就绪”状态,并将 PCB结构插入到就绪队列中。4.线程 线程定义:线程是比进程更小的活动单位,它是进程中的一个执行路径

8、。 进程的特点: 进程中的一条执行路径; 它有自己私用的堆栈和处理机执 行环境; 它与父进程共享分配给父进程的主存; 它是单个进程所创建的许多个 同时存在的线程中的一个。 创建一个线程比创建一个进程开销要小得多; 实现 线程间通信十分方便。 线程是一个动态的概念。 在进程内创建多线程, 可以提 高系统的并行处理能力,加快进程的处理速度。Linux进程查看命令:ps命令:报告进程标识、用户、 CPU时间消耗以及 其他属性。top命令:显示 CPU占用率为前几位的进程。 pstree命令:列出当 前的进程,以及它们的树状结构。5进程的相互制约关系 进程之间有竞争与合作的关系,引发了进程互斥和进程同

9、步的问题。 进程互斥是指在操作系统中,当某一进程正在访问(读写)某一存储区域时, 就不允许其他进程来读出或者修改存储区的内容。 例如买票系统中对剩 余票数的争夺就是互斥现象。进程同步是指并发进程在一些关键点上可能需要互相等待与互通消息, 这种相互制约的等待与互通消息称为进程同步。 例如就诊时化验和诊病就属于 同步。在操作系统中,一次仅允许一个进程使用的资源称为临界资源。进程中对公共变量 (或存储区 )进行审查与修改的程序段,称为相对于该公共变量的临界区。进程进入临界区的原则:每次至多一个进程处于临界区;有限时间内进入临界区(不能长时间阻塞);逗留有限时间;上锁操作和开锁操作:检测w的值(是0还

10、是1);如果w的值为1,继续检测;如果w的值为0,将锁位置1 (表示占用资源),进入临界区执行。(此为 上锁操作)临界资源使用完毕,将锁位置 0。(此为开锁操作)信号灯是一个确定的二元组 (s, q),s是一个具有非负初值的整型变量, q是一个初始状态为空的队列。 操作系统利用信号灯的状态对并发进程和共享 资源进行控制和管理。变量值0时,表示绿灯,进程执行;变量值 0时,表示红灯,进程停止执行。P操作:对信号灯s的p操作记为p(s)。即取信号灯值减1,若相减结 果为负,则调用p(s)的进程被阻,并插入到该信号灯的等待队列中,否则可以 继续执行。V操作:对信号灯s的v操作记为v(s)。即取信号灯

11、值加1,若相加结 果大于零,进程继续执行,否则,要帮助唤醒在信号灯等待队列上的一个进程。知识点延伸 1其中,生产者一一消费者问题该如何解决呢?在生产者一消费者问题中,信号灯具有两种功能。首先,它是跟踪资源 的生产和消费的计数器;其次,它是协调资源的生产者和消费者之间的同步器。 消费者通过再一指派给它的信号灯上做 P操作来表示消耗资源,而生产者通过在同一信号灯上做 V操作来表示生产资源。再这种信号灯的实施中,计数在 每次P操作后减1,而在每次V操作中加1。个这一计数器的初始值是可利用 的资源数目。当资源是不可利用时, 将申请资源的进程放置在等待队列中。 如果有一个资源释放,在等待队列中的第一个进

12、程被唤醒并得到资源的控制权。为解决这一类生产者一一消费者问题,设置了两个同步信号灯,一个说 明空缓冲区的数目,用empty表示,其初值为有界缓冲区的大小 n ,另一个说明缓冲区的数目,用 full表示,其初制值为0。由于有界缓冲区是一个零界资 源,必须互斥使用,所以另外还需设置一个互斥信号灯 mutex,起初值为1。假定在生产者和消费者之间的公用缓冲区中,具有 n个缓冲区,这时可以利用互斥信号量 mutex实现诸进程对缓冲池的互斥使用;利用信号量empty 和full分别表示缓冲池中空缓冲区和满缓冲区的数量。 又假定这些生产者和消费者互相等效果,只要缓冲池未满,生产者便可以将消息送入缓冲池;

13、只要缓冲池未空,消费者便可以从缓冲池中取走一个消息。要设计并实现一个进程,该进程拥有一个生产者线程和一个消费者线程, 它们使用N个不同的缓冲区,需要使用如下信号量:一个互斥信号量,用以阻止生产者线程和消费者线程同时操作缓冲区列表; 一个信号量,当生产者线程生产出一个物品时可以用它向消费者线程发出 信号;一个信号量,消费者线程释放出一个空缓冲区时可以用它向生产者线程发出信号Producer:p(empty) / 如果 empty=0 ,则生产者进程自我阻塞。 p(mutex) in:=in+1 mod N;v(mutex)v(full)Consumer:p(full)p(mutex) out:=

14、out+1 mod N;v(empty)in、out 为共享变量。因此为了防止多个进程同时修改它们,将对他们的操 作放在 PV 操作中。 对于 in 、 out 取余的原因是为了用于循环。如果知识点延伸 2: 哲学家就餐问题的解法 基本思想:规定在拿到左侧的筷子后,先检查右面的筷子是否可用。不可用,则先放下左侧筷子,等一段时间再重复整个过程。#include process.htime.hstdlib.hstdio.hiostreamconst unsigned int PHILOSOPHER_NUM=5; / 哲学家数目const char THINKING=1; /* 标记当前哲学家的 状

15、态 ,1 表示等待 ,2 表示得到饥饿 ,3 表示正在吃饭 */const char HUNGRY=2;const char DINING=3;HANDLE hPhilosopher5; / 定义数组存放哲学 家/*HANDLE( 句 柄 ) 是 windows 操作系统中的一个概念。 指的是一个核心对象在某一个进程中 的唯一索引 */ semaphore 用来HANDLE semaphorePHILOSOPHER_NUM; 表示筷子是否可用HANDLE mutex; / 制安全输出DWORD WINAPI philosopherProc( LPVOID lpParameter) DWORD

16、(32 位数据)的 API 函数 philosopherProcint myid;char idStr128;char stateStr128;char mystate;int ret;unsigned int leftFork; / 左筷子unsigned int rightFork; / 右筷子myid = int(lpParameter); itoa(myid, idStr, 10);WaitForSingleObject(mutex, INFINITE);cout philosopher myid begin endl;ReleaseMutex(mutex);mystate =/ 初始

17、状态为 THINKINGleftFork = (myid) % PHILOSOPHER_NUM; rightFork = (myid + 1) % PHILOSOPHER_NUM;while (true) switch(mystate) case THINKING:mystate = / 改变状态strcpy(stateStr, HUNGRY); break;Mutex 用来控/ 返回THINKING;HUNGRY;case HUNGRY: strcpy(stateStr, / 左筷子可DINING;/ 如果筷子是否可用if (ret = WAIT_OBJECT_0)ret = WaitFor

18、SingleObject(semaphorerightFork, 0); 用就拿起,再检查右筷子是否可用/ 右筷子可用,就改变自己的状态DININGelseReleaseSemaphore(semaphoreleftFork, 1, NULL); 右筷子不可用,就把左筷子放下break;case DINING:/ 吃完后把两支筷子都放下 ReleaseSemaphore(semaphorerightFork, 1, NULL);/ 改变自己的状态THINKING/ 输出状态 is : stateStr / sleep a random time : between 1 - 5 sint sle

19、epTime;sleepTime = 1 + (int)(5.0*rand()/(RAND_MAX+1.0);Sleep(sleepTime*10);int main() int i;srand(time(0);mutex = CreateMutex(NULL, false, NULL);for (i=0; iPHILOSOPHER_NUM; i+)semaphorei = CreateSemaphore(NULL, 1, 1, NULL);hPhilosopheri=CreateThread(NULL,0,philosopherProc,LPVOID(i), CREATE_SUSPENDED

20、,0);ResumeThread(hPhilosopheri);Sleep(2000);return 0;知识点延伸 3:读者写者问题的写者优先情况cobeginprocedure readeri(vord)(i=1,2, k)while(true)P(S)p(rmutex) ;if readcount=0 then p(wmutex);readcount:=readcount+1;v(rmutex);V(S)读文件;=readcount-1;if readcount=0 thenv(wmutex);procedure writerj(vord)(j=1,2, ,m)p (wmutex);写文

21、件;v(wmutex) ;V(s)5. 实现进程通信的方式有:共享存储器方式,共享文件方式,消息通信方式。 具体进程通信的实现:因为进程间不能直接通信,所以需要在操作系统 空间设置一组缓冲区,当发送进程需要发送消息时,执行 send 系统调用,产 生自愿性中断,进入操作系统,操作系统为发送进程分配一个空缓冲区,并 将所发送的消息从发送进程 copy 到缓冲区中,然后将该载有消息的缓冲区连 接到接收进程的消息链链尾,如此就完成了发送过程。发送进程返回到用户 态继续执行。在以后某个时刻,当接收进程执行到 receive 接收原语时,也产生自愿性 中断进入操作系统,由操作系统将载有消息的缓冲区从消息

22、链中取出,并把 消息内容 copy 到接收进程空间,之后收回缓冲区,如此就完成了消息 的接收,接收进程返回到用户态继续进行。五、第五章操作系统的资源管理1资源管理的机制与策略死锁及其解决方法 系统对作业一级采用资源静态分配方法,系统在调度作业时,根据作业所 需资源进行分配, 并在作业运行完毕时, 收回所分配的全部资源; 对进程一级 采用资源动态分配方法, 系统在进程运行中, 根据进程提出的资源需求, 进行 资源的动态分配和回收。资源分配时需要用到资源信息块,描述某类资源的请求者、可用资源和该 类资源分配程序等必要信息, 其内容有等待队列头指针, 可利用资源队列头指 针,资源分配程序入口地址。常

23、用的资源分配策略有先请求先服务,即按请求的先后次序排序,先到先 得;优先调度即按进程的优先级高低决定顺序,优先级高的先执行。死锁是指在两个或多个并发进程中,如果每个进程持有某种资源而又都等 待着别的进程释放现在保持着的资源, 否则就不能向前推进。 此时, 称这一组 进程产生了死锁。即不能再继续执行。产生死锁的必要条件: 1.互斥条件: 涉及的资源是非共享的, 即为临界资源。2.不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行夺 走。3.部分分配:进程每次申请它所需要的一部分资源。在等待一新资源的同时, 进程继续占用已分配到的资源。4.环路条件:存在一种进程的循环链,链中的每一个

24、进程已获得的资源同时被 链中下一个进程所请求。只要破坏其中一个条件就能预防死锁。预防死锁的方法有:静态预防: 在作业调度时为选中的作业分配它所需要的所有资源, 当资源一旦 分配给该作业后,在其整个运行期间这些资源为它独占。动态预防:( 1)有序资源分配法:系统中所有资源都给定一个唯一的编号所 有分配请求必须以上升的次序进行。( 2)银行家算法申请者事先说明对各类 资源的最大需求量。 在进程活动期间动态申请某类资源时, 由系统审查系统现 有该类资源的数目是否能满足当前进程的最大需求量,如能满足就予以分配, 否则拒绝。2处理机管理处理机调度可以确定数据结构, 确定调度策略, 给出调度算法, 实施处

25、理机分 派。批处理系统中的处理机调度分为两级: 作业调度和进程调度。 作业调度对存放 在辅存设备上的大量作业, 以一定的策略进行挑选, 分配主存等必要的资源, 建 立作业对应的进程, 使其投入运行。 进程调度确定哪个进程在什么时候获得处理 机,使用多长时间。多任务操作系统中的处理机调度: 一个进程又可以创建多个子进程, 形成可以 并发执行的多进程。 当处理机空闲时, 以某种策略选择一个就绪进程去运行, 并 分配处理机的时间多线程操作系统中的处理机调度: 在支持多线程运行的系统中, 一个进程可以 创建一个线程, 也可以创建多个线程。 当处理机空闲时, 以某种策略选择一个就 绪线程去运行,并分配处理机时间。作业调度:作业在整个活动期间有如下状态: 后备状态, 执行状态,完成状态。 采用平均周转时间和平均带权周转时间衡量作业调度算法性能的好坏。 周转时间:一个作业提交给计算机系统到该作业的结果返回给用户所需要的时间。定义 ti = tci tsi带权周转时间:一个作业的周转时间与其运行时间的比值 常用的作业调度算法:先来先服务调度算法 (FCFS) 策略:按作业来到的先后次序进行调度。短作业优先调度算法 策略:按作业请求运行的时间长短进行调度。 同样的条件下,短作业优先调度算法的平均周转时间更短,更具有优势。 进程调度的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1