操作系统第8章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《操作系统第8章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课件
- 资源描述:
-
1、2022年8月3日星期三第第8 8章章 操作系统操作系统实例二:实例二:Linux Linux 2022年8月3日星期三8.1 Linux 的进程管理的进程管理8.2 Linux 的存储管理的存储管理8.3 Linux 的文件管理的文件管理8.4 Linux 的设备管理的设备管理2022年8月3日星期三熟练掌握:熟练掌握:LinuxLinux进程的组成,进程的组成,LinuxLinux的进程调度,的进程调度,LinuxLinux的虚拟的虚拟存储空间,内存分配和页面淘汰策略,存储空间,内存分配和页面淘汰策略,LinuxLinux文件系统文件系统的构成,的构成,EXT2EXT2对磁盘的组织,对磁盘
2、的组织,LinuxLinux设备管理概述,设备管理概述,LinuxLinux对字符设备的管理,对字符设备的管理,LinuxLinux对块设备的管理。对块设备的管理。掌握:掌握:LinuxLinux进程间的通信进程间的通信消息队列,消息队列,EXT2EXT2文件的物理结文件的物理结构,虚拟文件系统构,虚拟文件系统VFSVFS。了解:了解:管理虚拟存储空间的数据结构,管理内存空间的数据管理虚拟存储空间的数据结构,管理内存空间的数据结构结构。2022年8月3日星期三8.1 Linux8.1 Linux的进程管理的进程管理8.1.1 Linux8.1.1 Linux的进程的进程 Linux Linux
3、系统的进程分为两大类:系统的进程分为两大类:一类是系统进程,它运行在内核模式下,执行操作系统代一类是系统进程,它运行在内核模式下,执行操作系统代码,完成一些管理性的工作码,完成一些管理性的工作;另一类是用户进程,通常在用户模式下运行,并通过系统另一类是用户进程,通常在用户模式下运行,并通过系统调用或在中断、异常情况发生时进入内核模式。调用或在中断、异常情况发生时进入内核模式。当考虑到响应的及时性时,当考虑到响应的及时性时,LinuxLinux系统中的进程也可分为实系统中的进程也可分为实时进程和普通进程。时进程和普通进程。2022年8月3日星期三 Linux Linux利用一个数据结构利用一个数
4、据结构task_structtask_struct来表示一个进程。来表示一个进程。task_structtask_struct结构包含在文件结构包含在文件include/linux/sched.hinclude/linux/sched.h中,主要包含以中,主要包含以下信息:下信息:(1)(1)进程标志:进程标志:task_structtask_struct结构中定义了进程标志号结构中定义了进程标志号PIDPID、组标志、组标志号号GIDGID、用户标志号、用户标志号UIDUID等。等。(2)(2)进程状态:进程状态:TASK_RUNNINGTASK_RUNNING、TASK_INTERRUPT
5、IBLETASK_INTERRUPTIBLE、TASK_UNINTERRUPTIBLETASK_UNINTERRUPTIBLE、TASK_STOPPEDTASK_STOPPED、TASK_ZOMBIETASK_ZOMBIE。(3)(3)进程调度信息:进程调度信息:LinuxLinux进程调度程序利用这部分信息在就绪队进程调度程序利用这部分信息在就绪队列(列(run_queuerun_queue)中选出一个就绪进程在)中选出一个就绪进程在CPUCPU上运行。上运行。2022年8月3日星期三 (4)(4)进程通信信息:用于消息队列、管道、信号量等进程通进程通信信息:用于消息队列、管道、信号量等进程
6、通信。信。(5)(5)进程的家族关系:每个进程的进程的家族关系:每个进程的task_structtask_struct结构中有许多结构中有许多进程指针,分别指向祖先进程即初始化进程、父进程、子进程等进程指针,分别指向祖先进程即初始化进程、父进程、子进程等的的task_structtask_struct结构,使系统中结构,使系统中task_structtask_struct结构形成了一棵进程结构形成了一棵进程树。树。(6)(6)时间和定时器:用于记录进程执行的总时间及进行软件时间和定时器:用于记录进程执行的总时间及进行软件定时。定时。(7)(7)文件系统信息:记录进程访问文件系统中相关文件的信文
7、件系统信息:记录进程访问文件系统中相关文件的信息。息。(8)(8)存储管理信息:存储管理信息:task_structtask_struct结构中保存了进程虚拟内存结构中保存了进程虚拟内存空间信息及其与物理存储有关的信息。空间信息及其与物理存储有关的信息。(9)(9)处理机现场保留信息处理机现场保留信息2022年8月3日星期三8.1.2 Linux8.1.2 Linux的进程调度的进程调度 在在LinuxLinux系统中系统调度的基本单位是进程,当进程调度时机成系统中系统调度的基本单位是进程,当进程调度时机成熟时,进程调度程序在多个进程间进行合理选择,为条件最佳的进程熟时,进程调度程序在多个进程
8、间进行合理选择,为条件最佳的进程分配处理机并使之投入运行。分配处理机并使之投入运行。Linux Linux使用进程调度统一处理进程和内核线程,所以通过进程调使用进程调度统一处理进程和内核线程,所以通过进程调度就可以得知线程调度的具体情况。度就可以得知线程调度的具体情况。Linux Linux中进程调度涉及了中进程调度涉及了3 3方面:调度方式、调度时机和调度策略。方面:调度方式、调度时机和调度策略。2022年8月3日星期三1.1.调度方式调度方式 Linux Linux采用采用“有条件的可剥夺有条件的可剥夺”调度方式。对于普通进程,调度方式。对于普通进程,当其时间片用完时,调度程序挑选出下一个
9、处于当其时间片用完时,调度程序挑选出下一个处于task_runningtask_running状状态的进程作为当前进程(自愿调度)。对于实时进程,若其优先态的进程作为当前进程(自愿调度)。对于实时进程,若其优先级足够高,则会从当前的运行进程中抢占级足够高,则会从当前的运行进程中抢占CPUCPU成为新的当前进程成为新的当前进程(强制调度)。发生强制调度时,若进程在用户空间中运行,就(强制调度)。发生强制调度时,若进程在用户空间中运行,就会被直接剥夺会被直接剥夺CPUCPU;若进程在内核空间中运行,即使迫切需要其;若进程在内核空间中运行,即使迫切需要其放弃放弃CPUCPU,也仍要等到它从系统空间返
10、回之前才被剥夺,也仍要等到它从系统空间返回之前才被剥夺CPUCPU。2022年8月3日星期三原因原因处理机执行的进程发生状态转换。处理机执行的进程发生状态转换。直接执行调度程序。直接执行调度程序。就绪队列中增加了新进就绪队列中增加了新进程。程。正在执行的进程所分配正在执行的进程所分配的时间片用完。的时间片用完。系统内核结束中断处系统内核结束中断处理返回到用户态。理返回到用户态。执行系统调用的进程执行系统调用的进程返回到用户态。返回到用户态。2.2.调度时机调度时机 调度时机是指重新进行进程调度,即重新分配处理机的时机。调度时机是指重新进行进程调度,即重新分配处理机的时机。LinuxLinux中
11、设置的进程调度标志为中设置的进程调度标志为need_reschedneed_resched,当该标志为,当该标志为1 1时,可以执行进程时,可以执行进程调度程序。通常引起调度程序。通常引起LinuxLinux系统中进程调度的原因有以下几种:系统中进程调度的原因有以下几种:2022年8月3日星期三3.3.调度策略调度策略1 1)数据结构)数据结构在在task_structtask_struct中有中有4 4 个与进程调度密切相关的参数:个与进程调度密切相关的参数:policypolicy进程的调度策略。进程的调度策略。prioritypriority进程的调度优先级。普通进程的可用的时间片的初值
12、进程的调度优先级。普通进程的可用的时间片的初值即为即为该该值。值。RtRt-priority-priority实时进程专用的调度优先级。实时进程的可用时间实时进程专用的调度优先级。实时进程的可用时间片的片的初值初值即为该值。即为该值。countercounter进程可用的时间片记数。进程可用的时间片记数。2022年8月3日星期三抢占式调度。抢占式调度。用优先级的设定,区分两用优先级的设定,区分两类进程,实现多级调度。类进程,实现多级调度。进程的分类和调度策略。进程的分类和调度策略。依据优先级依据优先级weight来选择可来选择可运行进程。运行进程。特点特点2 2)调度策略的特点)调度策略的特点
13、2022年8月3日星期三8.1.3 Linux8.1.3 Linux进程间进程间的通信的通信-消息消息队列队列 Linux Linux为进程间的通信提供了多种机制,常见的有信号、信为进程间的通信提供了多种机制,常见的有信号、信号量、管道、消息队列和共享内存储区等。信号用于一个进程向号量、管道、消息队列和共享内存储区等。信号用于一个进程向另一个进程发出通知;而信号量则用于进程间取得同步;管道、另一个进程发出通知;而信号量则用于进程间取得同步;管道、消息队列和共享存储区都用于在进程间传递数据。消息队列和共享存储区都用于在进程间传递数据。消息消息队列是进程间的一种异步通信方法。队列是进程间的一种异步
14、通信方法。“异步异步”即发送消即发送消息的进程在消息发出之后,不必等待接收进程作出反应,就可以息的进程在消息发出之后,不必等待接收进程作出反应,就可以去做其他的事情了。去做其他的事情了。Linux Linux 对消息的长度没有限制。消息队列使对消息的长度没有限制。消息队列使用完毕后,应该予以释放(即删除)。用完毕后,应该予以释放(即删除)。2022年8月3日星期三 1.1.消息队列的数据结构消息队列的数据结构 一一个消息队列是一个由消息缓冲区所构成的链表,它允许一个或个消息队列是一个由消息缓冲区所构成的链表,它允许一个或多个进程从中读出或写入消息。多个进程从中读出或写入消息。采用采用这种通信机
15、制时,这种通信机制时,LinuxLinux需维护一个消息队列数组需维护一个消息队列数组msgquemsgque,每个数组元素是一个描述某个消息队列的每个数组元素是一个描述某个消息队列的msqid_dsmsqid_ds结构的结构体,结构的结构体,LinuxLinux通过该结构管理消息队列。当创建新的消息队列时,系统将从通过该结构管理消息队列。当创建新的消息队列时,系统将从内存中申请分配一个由内存中申请分配一个由msqid_dsmsqid_ds结构描述的内存块,并将它们插入到结构描述的内存块,并将它们插入到数组数组msgquemsgque中。中。2022年8月3日星期三该通信机制所用到的数据结构描
16、述如下:该通信机制所用到的数据结构描述如下:static struct msqid_ds msgque;/*每个消息队列占一个每个消息队列占一个msqid_ds结构结构*/struct msqid_ds struct ipc_perm msg_prem;struct msg*msg_first;/*指向消息队列的第一条消息指向消息队列的第一条消息*/struct msg*msg_last;/*指向消息队列的最后一条消息指向消息队列的最后一条消息*/time_t msg_stime;/*最后发送时间最后发送时间*/time_t msg_rtime;/*最后接收时间最后接收时间*/time_t m
17、sg_ctime;/*最后修改时间最后修改时间*/struct wait_queue*wait;/*写消息进程的等待队列指针写消息进程的等待队列指针*/struct wait_queue*rwait;/*读消息进程的等待队列指针读消息进程的等待队列指针*/ushort msg_cbytes;/*队列中消息的字节数队列中消息的字节数*/ushort msg_qnum;/*队列中消息数队列中消息数*/ushort msg_qbytes;/*队列中消息的最大字节数队列中消息的最大字节数*/ushort msg_lspid;/*最后一个发送消息的进程的标志号最后一个发送消息的进程的标志号*/ushor
18、t msg_lrpid;/*最后一个接收消息的进程的标志号最后一个接收消息的进程的标志号*/;2022年8月3日星期三struct msg/struct msg/*每条信息占一个每条信息占一个msgmsg结构结构*/struct msg struct msg*msg_next;/msg_next;/*指向下一条消息的指针指向下一条消息的指针*/long msg_type;/long msg_type;/*消息类型消息类型*/char char*msg_spot;/msg_spot;/*消息文本的地址指针消息文本的地址指针*/time_t msg_stime;/time_t msg_stime;
19、/*发送此条消息的时间发送此条消息的时间*/short msg_ts;/short msg_ts;/*消息文本的长度消息文本的长度*/;Linux Linux系统中表示消息的结构中含有指向下一条消息的指针系统中表示消息的结构中含有指向下一条消息的指针msg_nextmsg_next,每个消息队列均为一个单向,每个消息队列均为一个单向链表。链表。2022年8月3日星期三LinuxLinux系统中的消息队列系统中的消息队列2022年8月3日星期三2.2.消息队列相关的系统调用消息队列相关的系统调用1 1)创建新消息队列系统调用)创建新消息队列系统调用newque()newque()2 2)删除消息
20、队列系统调用)删除消息队列系统调用freeque()freeque()3 3)发送消息系统调用)发送消息系统调用msgsnd()msgsnd()4 4)接收消息系统调用)接收消息系统调用msgrcv()msgrcv()2022年8月3日星期三 1.1.虚拟地址空间虚拟地址空间 在在PentiumPentium计算机上,计算机上,LinuxLinux系统采用系统采用3 3位虚拟地址,因而每位虚拟地址,因而每个用户的虚拟地址空间可达到个用户的虚拟地址空间可达到4 GB4 GB,其中高地址的,其中高地址的1 GB1 GB是系统空是系统空间,低地址的间,低地址的3 GB3 GB是是用户空间。用户空间。
21、进程进程实际用到的虚拟地址空间由若干个连续的区域构成。实际用到的虚拟地址空间由若干个连续的区域构成。LinuxLinux系统采用虚存段和链表来表示。每个虚存段表示进程的一系统采用虚存段和链表来表示。每个虚存段表示进程的一段连续区域,虚存段之间不一定是连续的。每个进程通常占用几段连续区域,虚存段之间不一定是连续的。每个进程通常占用几个虚存段,分别为代码段、数据段和堆栈段等,虚存段用单链表个虚存段,分别为代码段、数据段和堆栈段等,虚存段用单链表来管理。来管理。8.2.1 Linux8.2.1 Linux的虚拟存储空间的虚拟存储空间8.28.2 LinuxLinux的存储管理的存储管理2022年8月
22、3日星期三LinuxLinux的虚拟存储空间的虚拟存储空间2022年8月3日星期三 2.2.页表管理页表管理 Linux Linux系统采用请求页式技术管理虚拟内存。在系统采用请求页式技术管理虚拟内存。在LinuxLinux中,采用中,采用二级页目表的形式,即把页表分为二级结构:页目录表(二级页目表的形式,即把页表分为二级结构:页目录表(PGDPGD)和页)和页表(表(PTEPTE)。每个进程有一个页目录表,其大小为)。每个进程有一个页目录表,其大小为4 KB4 KB,以,以4 B4 B为一个为一个表项,共包含表项,共包含1 0241 024个表项,每个页目录表项指向页表中的一页。同个表项,每
23、个页目录表项指向页表中的一页。同样,每个页表大小也为样,每个页表大小也为4 KB4 KB,包含,包含1 0241 024个表项,每个页表项指向该个表项,每个页表项指向该进程的一个进程的一个页面。页面。虚拟地址结构虚拟地址结构页目录3122页号2112页内位移量1102022年8月3日星期三 3.3.地址转换地址转换 当当调用调用forkfork()创建一个进程时,系统为之建立一个()创建一个进程时,系统为之建立一个PCBPCB,称为,称为task_structtask_struct结构,其中包含了一个用于描述该进程存储管理相关信结构,其中包含了一个用于描述该进程存储管理相关信息的息的mm_st
24、ructmm_struct数据结构,页目录表的起始地址存放在数据结构,页目录表的起始地址存放在mm_structmm_struct中。中。每次每次将虚拟地址转换成物理地址时,都要首先通过将虚拟地址转换成物理地址时,都要首先通过mm_structmm_struct中中的指针的指针pgdpgd找到该进程的页目录表;然后根据页目录在页目录表中找找到该进程的页目录表;然后根据页目录在页目录表中找到相应的表项,从中得到页表的入口地址;其次根据页号在页表中找到相应的表项,从中得到页表的入口地址;其次根据页号在页表中找到相应的表项,从中得到该页在内存中的物理块号;最后根据页内位到相应的表项,从中得到该页在内
25、存中的物理块号;最后根据页内位移量就可以访问所需移量就可以访问所需内容。内容。2022年8月3日星期三地址转换过程示意图地址转换过程示意图2022年8月3日星期三8.2.2 8.2.2 管理虚拟存储空间的数据结构管理虚拟存储空间的数据结构 Linux Linux在管理进程虚拟空间时定义了虚存段(在管理进程虚拟空间时定义了虚存段(vmavma)。)。虚虚存段是进程一段连续的虚存空间,在这段虚存空间里,所存段是进程一段连续的虚存空间,在这段虚存空间里,所有单元拥有相同特征。这样分割是因为每个虚拟内存区域的来源有单元拥有相同特征。这样分割是因为每个虚拟内存区域的来源可能不同,有的可能来自可执行映像,
展开阅读全文