操作系统ch8(self).ppt_第1页
操作系统ch8(self).ppt_第2页
操作系统ch8(self).ppt_第3页
操作系统ch8(self).ppt_第4页
操作系统ch8(self).ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020/10/12,江苏大学计算机学院 操作系统课程组,1,第八章 UNIX系统简介,8.1 UNIX的发展 8.2 UNIX系统结构 8.3 UNIX的用户接口 8.4 UNIX的进程管理 8.5 UNIX的存储管理 8.6 UNIX的文件管理 8.7 UNIX的设备管理,2020/10/12,江苏大学计算机学院 操作系统课程组,2,8.1 UNIX的发展,UNIX是多用户多任务分时操作系统,16/32/64位; BSD, SVR4(模块式结构), OSF/1(微内核结构),一、UNIX的历史,2020/10/12,江苏大学计算机学院 操作系统课程组,3,8.1 UNIX的发展,1965年

2、:MIT的Multics,由于规模和进展而没有达到目标; 1969年:AT wait();exit();kill();signal();sleep(). 与文件系统有关的系统调用。如:open();close();read();write();create(). 与设备管理有关的系统调用 。如:ioctl() 有关进程通信的系统调用 。如:pipe() 有关存储管理的系统调用 。 管理用的系统调用 。,分类:,2020/10/12,江苏大学计算机学院 操作系统课程组,17,8.4 UNIX的进程管理,8.4.1 UNIX的系统启动与进程关系. 8.4.2 UNIX的进程结构 8.4.3 UNI

3、X的进程状态及转换 8.4.4 UNIX的进程调度 8.4.5 UNIX的进程通信,2020/10/12,江苏大学计算机学院 操作系统课程组,18,8.4 UNIX的进程管理,8.4.1 UNIX的系统启动与进程关系.,UNIX各进程关系,2020/10/12,江苏大学计算机学院 操作系统课程组,19,8.4 UNIX的进程管理,8.4.1 UNIX的系统启动与进程关系.,UNIX中的两个特殊进程: 0#进程 。由内核程序创建,初始化时创建1#进程 。平时负责调度分配处理器 。管理中负责进程调度与交换 1#进程 是所有用户进程的祖先进程,2020/10/12,江苏大学计算机学院 操作系统课程组

4、,20,8.4 UNIX的进程管理,8.4.2 UNIX的进程结构,进程的上下文:是进程执行活动全过程的静态描述; 包括: 执行该进程有关的各种寄存器的值; 程序段机器指令代码集; 数据集及各种堆栈值和PCB结构。,2020/10/12,江苏大学计算机学院 操作系统课程组,21,8.4.2 UNIX的进程结构,进程上下文的组成: 用户级上下文 -由进程的用户程序段部分编译而成的用户正文段、用户数据段及用户堆栈等组成。 寄存器上下文 -由程序寄存器PC、处理机状态字寄存器PS、栈指针和通用寄存器的值组成。 系统级上下文 分为:(1)静态部分 (2)动态部分 UNIX System的进程上下文如图

5、所示。,2020/10/12,江苏大学计算机学院 操作系统课程组,22,8.4.2 UNIX的进程结构,2020/10/12,江苏大学计算机学院 操作系统课程组,23,8.4.2 UNIX的进程结构,动态部分:与寄存器上下文相关联的。它不是指程序的执行,而是指在进入和退出不同的上下文层次时,系统为各层上下文中相关联的寄存器值所保存和恢复的记录。它可看成是一些数量变化的层次组成,其变化规则是满足先进后出的堆栈方法。每个上下文层次在栈中各占一项。,进程上下文的切换总会引起一层核心栈的压入或弹出,核心压入老的进程上下文层,弹出新的进程上下文层。,2020/10/12,江苏大学计算机学院 操作系统课程

6、组,24,8.4.2 UNIX的进程结构,2020/10/12,江苏大学计算机学院 操作系统课程组,25,8.4 UNIX的进程管理,8.4.3 UNIX的进程状态及转换,进程状态分类:,1)用户执行态 :进程正在用户态下执行; 2)核心执行态:进程正在核心态下执行; 3)在内存中的就绪态 :进程没有被执行,但处于就绪状态 ; 4)在内存中的睡眠态 :进程正在睡眠并驻留在内存中 ; 5)就绪且换出态 :进程处于就绪状态,但对换进程(0#进程)已把它换出内存 ;,2020/10/12,江苏大学计算机学院 操作系统课程组,26,8.4 UNIX的进程管理,8.4.3 UNIX的进程状态及转换,进程

7、状态分类:,6)睡眠且换出态 :进程正在睡眠,但对换进程 已把它换出内存 ; 7)被抢先态:进程正从核心态返回到用户态,作了上下文切换; 8)创建态:进程刚被创建 ; 9)僵死态 :进程执行了系统调用exit,处于僵 死(zombie)状态。,2020/10/12,江苏大学计算机学院 操作系统课程组,27,8.4 UNIX的进程管理,8.4.3 UNIX的进程状态及转换,进程状态分类转换图:,fork 内存足够 内存不足 调度进程 系统调用或中断 系统调用返回 核心切换进程 返回到用户态 中断或中断返回 睡眠 唤醒 换出 换入 换出 唤醒 退出,2020/10/12,江苏大学计算机学院 操作系

8、统课程组,28,8.4 UNIX的进程管理,8.4.4 UNIX的进程调度,1.调度原理 采用:多级反馈循环调度法(Round Robin With Multiple Feedback). 执行顺序:1)给进程分配时间片 2)时间片结束时计算进程优先级 3)分析情况置状态 4)调度高优先级进程开始运行 5)被枪夺了cpu的进程反馈到相应的优先级 队列中,2020/10/12,江苏大学计算机学院 操作系统课程组,29,8.4 UNIX的进程管理,8.4.4 UNIX的进程调度,2.进程优先级计算原则 核心根据睡眠的原因将一个固定的优先权值赋予一个即将进入睡眠的进程。(较容易引起系统瓶颈的进程优先

9、权高 ) 核心调整核心态返回用户态的进程优先权。 时钟处理程序以1秒钟的间隔调整用户态下的所有进程的优先权,同时运行调度程序,以防止某个进程垄断CPU的使用。,2020/10/12,江苏大学计算机学院 操作系统课程组,30,8.4 UNIX的进程管理,8.4.5 UNIX的进程通信,UNIX进程间通信分类: 低级通信 2)进程间通信IPC(InterProcess Communication),2020/10/12,江苏大学计算机学院 操作系统课程组,31,8.4 UNIX的进程管理,8.4.5 UNIX的进程通信低级通信,UNIX的低级通信主要用来传递进程间的控制信号。,实现方法: 利用睡眠

10、原语sleep和唤醒原语wakeup实现进程间的同步与互斥。 sleep:使当前进程以指定的优先数在指定的队列上睡眠; wakeup:唤醒在指定队列上睡眠的所有进程,2020/10/12,江苏大学计算机学院 操作系统课程组,32,8.4 UNIX的进程管理,8.4.5 UNIX的进程通信低级通信,2) 利用软中断信号实现同一用户的诸进程之间的通信。 软中断是对硬件中断的一种模拟,发送软中断就是向 接收进程的proc结构中的相应项发送一个信号。 软中断处理程序不像硬中断处理程序那样,收到中断信 号后立即被启动,它必须等到接收进程执行时才能生效。,2020/10/12,江苏大学计算机学院 操作系统

11、课程组,33,8.4 UNIX的进程管理,8.4.5 UNIX的进程通信进程间通信IPC,它由三部分构成: (1)消息(message):用于进程之间分类的格式化数据; (2)共享存储区(shared memory):可使得不同进程通过共享彼此的虚拟空间而达到互相对共享区操作和数据通信目的; (3)信号量(semaphore) 机制:用于进程之间的同步控制。,进程间通信IPC是UNIX System 的一个核心程序包,它负责 完成进程之间的大信息量的数据传输工作。,信号量总是和共享存储区方式一起使用。,2020/10/12,江苏大学计算机学院 操作系统课程组,34,8.4 UNIX的进程管理,

12、8.4.5 UNIX的进程通信进程间通信IPC,(1)消息机制 消息机制可提供msgget, msgctl, msgsnd, msgrev等四 个系统调用,在使用各种通信机制的系统调用之前,必 须include三个头文件(, 和 )。 系统调用msgget(key, msgflg)返回一个消息描述字 msgqid,msgqid指定一个消息队列以便其它三个系统调用 使用。 系统调用msgctl(msgqid, cmd, buf)用来设置和返回与 msgqid相关联的参数选择项,以及用来删除消息描述字 的选择项。,2020/10/12,江苏大学计算机学院 操作系统课程组,35,8.4 UNIX的进

13、程管理,8.4.5 UNIX的进程通信进程间通信IPC,系统调用msgsnd(msgqid, msgp, msgsz, msgflg)用于发送一消息。 系统调用msgrev(msgqid, msgp, msgsz, msgtyp,msgflg) 用于接收一消息。,2020/10/12,江苏大学计算机学院 操作系统课程组,36,8.4 UNIX的进程管理,8.4.5 UNIX的进程通信进程间通信IPC,(2)共享存储区机制 进程能够通过共享虚拟地址空间的若干 部分,对存储在共享存储区中的数据进行读写,实现直接通信。,2020/10/12,江苏大学计算机学院 操作系统课程组,37,8.4 UNIX

14、的进程管理,8.4.5 UNIX的进程通信进程间通信IPC,(3)信号量机制 信号量机制是基于第六章所述的P、V 原语原理的。 一个信号量由以下几个部分组成: 1) 信号量的值,为一个大于、小于或等于0的整数。 2) 最后一个操纵信号量的进程的进程id。 3) 等待信号量值增加的进程数。 4) 等待信号量值等于0的进程数。 信号量机制提供了相应的系统调用对信号量进行创建、控制及P、V操作。,2020/10/12,江苏大学计算机学院 操作系统课程组,38,8.5 UNIX的存储管理,UNIX System 采用请求页式和交换策略进行存储管理。 二者区别: 交换技术换进换出整个进程;请求页式策略在

15、内存和外存之间来回传递的是存储页而不是整个进程,使得进程的大小比可用的物理存储空间大得多。,8.5.1进程的虚拟空间 描述 8.5.2 进程的虚拟空间 管理操作,2020/10/12,江苏大学计算机学院 操作系统课程组,39,8.5 UNIX的存储管理,在UNIX System 中一个进程由三个逻辑段组成:正文段、数据段和堆栈段。因此,一个进程的虚拟地址空间也被分成三个逻辑区来存放上述三个逻辑段。 区是进程的虚拟地址空间上的一个连续区域,它是被共享、保护及进行内存分配和地址变换的独立实体。 系统设有一个被称为区表的数据结构,每个在系统中存在的区都在该表中占有一个表项。,8.5.1进程的虚拟空间

16、描述,2020/10/12,江苏大学计算机学院 操作系统课程组,40,8.5 UNIX的存储管理,系统区表示意图:,8.5.1进程的虚拟空间描述,2020/10/12,江苏大学计算机学院 操作系统课程组,41,8.5 UNIX的存储管理,8.5.1进程的虚拟空间描述,2020/10/12,江苏大学计算机学院 操作系统课程组,42,8.5 UNIX的存储管理,改变一个区的大小:UNIX System 中进程通过系统调用sbrk来实现。 创建一个共享存储区 :进程通过系统调用shmget 来实现。 产生一个子进程 :进程使用系统调用fork 来实现。 改变本进程的虚空间映像 :进程可使用系统调用e

17、xec 来实现。,8.5.2 进程的虚拟空间管理操作,2020/10/12,江苏大学计算机学院 操作系统课程组,43,8.6 UNIX的文件管理,8.6.1 UNIX文件系统特点 8.6.2 UNIX文件系统存储结构 8.6.3 目录与索引节点 8.6.4 文件系统的存储分配和回收 8.6.5 文件系统的打开与读写,2020/10/12,江苏大学计算机学院 操作系统课程组,44,8.6 UNIX的文件管理,UNIX文件系统具有如图所示的树型层次结构。,8.6.1 UNIX文件系统特点,2020/10/12,江苏大学计算机学院 操作系统课程组,45,8.6 UNIX的文件管理,lib库函数文件子

18、目录; usr通用子目录; etc基本数据和维护实用程序子目录; dev设备子目录; tmp临时文件子目录; bin实用程序子目录; UNIX操作系统核心程序子目录; include基本数据子目录。,8.6.1 UNIX文件系统特点,2020/10/12,江苏大学计算机学院 操作系统课程组,46,8.6 UNIX的文件管理,UNIX文件可分为: 1. 普通文件 普通文件是存储用户和系统的有关数据和程序文件。 2.目录文件 是由该目录中各个目录项信息所形成的文件。一个目录文件由若干个目录项组成,每个目录项又由文件名和指示相应的文件说明信息表(i节点)的标识符id组成。,8.6.1 UNIX文件系

19、统特点,普通文件和目录文件都是无结构、无记录概念的字符流式文件。文件系统以512字节为一块,文件在块内连续存放,文件的存取方式既可以是顺序存取的,也可以是直接存取的。,2020/10/12,江苏大学计算机学院 操作系统课程组,47,8.6 UNIX的文件管理,3. 设备文件 除了有目录项和文件说明信息表的信息外,并不占有实际的物理存储块。对设备文件的读写实际上变为对设备的操作,对设备文件的保护也将变成为对设备的保护。,8.6.1 UNIX文件系统特点,2020/10/12,江苏大学计算机学院 操作系统课程组,48,8.6 UNIX的文件管理,UNIX文件系统的特点: 1) UNIX文件系统中文

20、件的组织采用树型层次结构。 UNIX中的文件是无结构、无记录概念的字符流式文件。 文件可方便动态增加或减少。 对文件数据具有访问权限控制,从而较好地保护文件信息。 把外部设备作为文件看待。,8.6.1 UNIX文件系统特点,2020/10/12,江苏大学计算机学院 操作系统课程组,49,8.6 UNIX的文件管理,8.6.2 UNIX文件系统存储结构,引导块(bootblock): 存放操作系统引导和启动代码,系统中只有一个 文件系统中具有引导代码,其余的为空。,2020/10/12,江苏大学计算机学院 操作系统课程组,50,8.6 UNIX的文件管理,8.6.2 UNIX文件系统存储结构,超

21、级块( superblock): 存放文件系统及管理资源的描述信息:文件系统状态、索引节点信息、存储块信息。,索引节点表( I_node table): 存放本文件系统中每个文件的描述信息项,是BFD 表结构,数据区(data are): 包含的文件数据及目录文件数据,空闲区块。,2020/10/12,江苏大学计算机学院 操作系统课程组,51,8.6 UNIX的文件管理,8.6.3 目录与索引节点,索引节点中包括: 文件类型 文件许可机制 文件的uid ,gid 文件被访问时间 链接数 文件长度 文件数据的磁盘地址明细表,目录文件主要包括文件名和对应的文件索引节点号. 传统UNIX 目录文件登

22、记项:,2020/10/12,江苏大学计算机学院 操作系统课程组,52,8.6 UNIX的文件管理,8.6.3 目录与索引节点,2020/10/12,江苏大学计算机学院 操作系统课程组,53,8.6 UNIX的文件管理,8.6.3 目录与索引节点,文件的多重索引结构:,UNIX采用直接寻址指针和间接寻址指针构成多重索引结构.,索引结构图:,2020/10/12,江苏大学计算机学院 操作系统课程组,54,2020/10/12,江苏大学计算机学院 操作系统课程组,55,8.6 UNIX的文件管理,8.6.4 文件系统的存储分配和回收,文件系统的存储分配和回收包括索引节点和磁盘块的分配和回收。系统将

23、有关空闲索引节点和空闲磁盘块的信息保存在超级块中。,索引节点的分配:,2020/10/12,江苏大学计算机学院 操作系统课程组,56,8.6 UNIX的文件管理,索引节点的回收: 如果超级块中的空闲索引节点表未满,则把该空闲索引节点号放入该表中。,8.6.4 文件系统的存储分配和回收,UNIX系统按成组链接法来组织空闲磁盘块,如图所示:,2020/10/12,江苏大学计算机学院 操作系统课程组,57,8.6 UNIX的文件管理,8.6.4 文件系统的存储分配和回收,2020/10/12,江苏大学计算机学院 操作系统课程组,58,8.6 UNIX的文件管理,8.6.4 文件系统的存储分配和回收,

24、磁盘块的分配: 把超级块中的空闲块号表中的下一个空闲块分配出去。如果此空闲块是空闲块号表中的最后一块,则核心在分配该块之前应先将此块中所记录的下一组空闲磁盘块号读入到超级块中的空闲块号表中。,2020/10/12,江苏大学计算机学院 操作系统课程组,59,8.6 UNIX的文件管理,8.6.4 文件系统的存储分配和回收,磁盘块的回收: 当核心要回收一磁盘块时,首先看超级块中的空闲块号表是否满,若未满,则回收的磁盘块的块号就填入该表中;若已满,则新回收的磁盘块就作为存放下一组空闲磁盘块号的链接块,并且把超级块中的空闲块号表写入到此链接块中,再把该链接块的块号写入超级块中的空闲块号表,这时它是该表

25、中的唯一成员。,2020/10/12,江苏大学计算机学院 操作系统课程组,60,8.6 UNIX的文件管理,8.6.5 文件系统的打开与读写,有关文件操作的系统调用所涉及到的主要数据结构有:用户打开文件表、系统打开文件表和内存索引节点表。,用户打开文件表:放在进程的user结构中,含有用户进程所打开的文件的描述符fd,以及系统打开文件表的入口指针fp等。,系统打开文件表:系统中所有进程打开文件的状况汇集,它的每一项包括文件标识、文件访问计数、文件读写指针和内存索引节点入口指针等。,2020/10/12,江苏大学计算机学院 操作系统课程组,61,8.6 UNIX的文件管理,8.6.5 文件系统的

26、打开与读写,打开文件: 使用系统调用open。 核心找到该文件的索引节点,建立起内存的索引节点。 检查打开文件的权限 。 该文件在系统打开文件表中建立一个表项,同时还要在用户打开文件表中分配一表项并填入该文件在系统打开文件表中的指针fp 。,如图所示,2020/10/12,江苏大学计算机学院 操作系统课程组,62,8.6 UNIX的文件管理,8.6.5 文件系统的打开与读写,2020/10/12,江苏大学计算机学院 操作系统课程组,63,8.6 UNIX的文件管理,8.6.5 文件系统的打开与读写,读/写文件:使用read/write系统调用 1.核心根据文件描述符找到相应的系统打开文件表项和

27、内存索引节点表项 。 2. 权限检查。 3. 完成读写操作。,2020/10/12,江苏大学计算机学院 操作系统课程组,64,8.6 UNIX的文件管理,8.6.5 文件系统的打开与读写,关闭文件:使用系统调用close 1.核心释放相应的用户打开文件表项。 2.相关联的系统打开文件表项中的文件访问计数减1。 3.如果文件访问计数仍大于0,转5。 4.核心释放该系统打开文件表项,同时使内存索引节点 表项中节点访问计数减1,当节点访问计数为0时,核 心还要释放此内存索引节点表项。 5.操作结束。此外,还有系统调用dup,link。,2020/10/12,江苏大学计算机学院 操作系统课程组,65,

28、8.7 UNIX的设备管理,8.7.1 缓冲区管理 8.7.2 设备驱动程序的接口,2020/10/12,江苏大学计算机学院 操作系统课程组,66,8.7 UNIX的设备管理,8.7.1 缓冲区管理,缓冲区分类: 1.块缓冲区。 2.字符缓冲区:若干字符缓冲块的单向链表。,设置缓冲区目的: 调节文件系统的读写和系统处理之间的速度不匹配的问题。,2020/10/12,江苏大学计算机学院 操作系统课程组,67,8.7 UNIX的设备管理,8.7.1 缓冲区管理,每个缓冲区由两部分构成: 存放数据的缓冲数据区-以缓冲池形式组成 包含控制信息的数据结构-缓冲控制块(包含信息见书),在访盘中系统对“缓冲

29、数据区”要进行: 缓冲控制块的设置 缓冲池的组织 缓冲区的分配与释放,2020/10/12,江苏大学计算机学院 操作系统课程组,68,8.7 UNIX的设备管理,8.7.1 缓冲区管理,缓冲控制块的设置:,缓冲数据区中的数据是文件的逻辑块映象,缓冲控制块对其进行纪录、控制和管理。基本控制块为:,2020/10/12,江苏大学计算机学院 操作系统课程组,69,8.7 UNIX的设备管理,8.7.1 缓冲区管理,2020/10/12,江苏大学计算机学院 操作系统课程组,70,8.7 UNIX的设备管理,8.7.1 缓冲区管理,关于状态:,状态信息表明缓冲区所处的当前状态,描述出缓存区锁定、开锁、延

30、迟写、相应状态等信息。 锁定和开锁:由于缓存区是独享资源,进程须互斥使用。 延迟写:标志该缓冲区在被分配之前是否须将内容写回磁盘。,2020/10/12,江苏大学计算机学院 操作系统课程组,71,8.7 UNIX的设备管理,8.7.1 缓冲区管理,缓冲池结构:,Unix System V用200个缓冲区构成块设备的缓冲池,每个缓冲区长为512/1024字节。缓冲池结构的用途: 用缓冲控制块中信息对缓冲区进行操作 用缓冲池的构造,可方便合理的进行操作 缓冲控制块和缓冲数据区一一对应。 缓冲池结构维护:,1)将缓存区按缓冲池管理,用两组双向链辅助对缓存区的操作。,2020/10/12,江苏大学计算机学院 操作系统课程组,72,8.7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论