第十章UNIX系统内核结构_第1页
第十章UNIX系统内核结构_第2页
第十章UNIX系统内核结构_第3页
第十章UNIX系统内核结构_第4页
第十章UNIX系统内核结构_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、第十章第十章 UNIX系系统统内核内核结结构构10.1 UNIX10.1 UNIX系统概述系统概述10.1.1 UNIX系统发展史 UNIX系统由美国Bell实验室设计和实现; 由IBM和DEC等公司结成了开放软件基金会OSF集团,由AT&T、SUN和NCR形成UI集团; 1980年BELL实验室为美国国防部在Berkeley的UNIX上开发了TCP/IP网络协议,使UNIX成为网络操作系统;10.1.2 UNIX系统的特征系统的特征 开放性:遵循国际标准规范,因此可以互连。UNIX是目前开放性最好的OS,可以稳定运行在从微机到大、中型等各种机器上的OS; 多用户、多任务环境; 功能强大、高效

2、:目录结构、磁盘空间的管理方式、I/O重定向和管道功能; 丰富的网络功能:TCP/IP协议; 支持多处理器;10.1.3 UNIX系统的内核结构系统的内核结构 进程控制子系统:进程控制:fork创建进程,exit结束进程执行;进程通信:消息机制、信号量机制;存储器管理:采用段页式存储管理;进程调度:动态优先数轮转调度算法,优先数最小值优先; 文件子系统文件管理:为文件分配空间,管理空闲磁盘块,控制文件存取;高速缓冲机制:缓冲区大小与一个盘块的大小相当,缓冲区链入各种链表中;设备驱动程序:UNIX把设备分为块设备和字符设备,文件系统在缓冲机制支持下,与块设备额驱动程序之间进行交互;10.2 进程

3、的描述和控制进程的描述和控制UNIX系统V采用段页式存储管理,在该系统中把段称为区Region。一个进程由:正文区、数据区、栈区和共享存储区等组成,每个区又分为若干页。每个进程还有一个进程控制块PCB。10.2.1 进程控制块进程控制块PCB分为四个部分:1)进程表项:常驻内存;2)U区:存放进程表项的扩充数据;3)系统区表:管理进程的各个区,每个区的物理存储地址;4)进程区表:记录进程的每个区在进程中的虚地址;10.2.2 进程状态与进程映像1、进程状态 执行状态,处于核心态的进程,能访问所有的内存空间,处理器不允许被抢占;就绪状态:内存就绪和就绪且换出;睡眠状态:调用系统调用wait,最多

4、64个睡眠队列;创建与僵死:创建指调用fork后,僵死为调用exit后;被抢占:优先级低进程被优先级高进程抢占;2.进程映像1)用户级上下文:用户程序;2)寄存器上下文:程序寄存器,处理机状态寄存器,通用寄存器;3)系统上下文:A、静态部分:进程表项、U区及进程区表项、系统表项和页表;B、动态部分:核心栈,寄存器上下文;10.2.3 进程控制1、fork调用引导时创建0进程,系统初启时,由0进程创建1进程,0进程变为对换进程,1进程为祖先进程。 1)为新进程分配进程表项和进程标识符;2)检查同时运行进程数量是否超限;3)拷贝进程表项中的数据;4)子进程继承父进程所有的文件;5)为子进程创建进程

5、上下文;6)子进程执行;2、exec系统调用用一个可执行文件的二进制文件覆盖新进程的用户级上下文的存储空间;3、exit系统调用1)关闭软中断;2)回收资源:关闭文件,是否进程所有的区及相应内存;3)记账;4)设置进程状态为“僵死”,进行上下文切换;4、wait调用等待子进程退出,然后被唤醒;10.2.4 进程调度与切换1、引起进程调度的原因进程执行wait、exit及sleep调用后放弃处理机,会引起调度程序重新进行调度,另外从核心态返回用户态时,如果有更高优先级进程,则也会引起调度;2、调度算法采用动态优先数轮转调度算法进行进程调度,如果有相同优先级,将处于就绪状态或被抢占状态最久的进程调

6、度执行;3、进程优先级的分类第一类为核心优先级:分为可中断和不可中断两种,当软中断到达时,可中断进程被唤醒;第二类为用户级优先级,0级最高;4、进程优先数的计算优先数最近使用CPU的时间/2+基本用户优先数,随占用CPU的时间增加,优先级降低;5、进程切换进程调度后,需要执行进程的上下文切换;10.3 进程的同步与通信进程的同步与通信10.3.1 sleep与wakeup同步机制1、sleep过程进入sleep后,提高处理机的运行优先级屏蔽中断,将进程设为“睡眠”状态,将进程放入睡眠队列,如果进程的睡眠不可中断,在做了进程上下文切换后,进程进入安稳睡眠。如果进程的睡眠可中断,则在进入睡眠前检测

7、是否有软中断信号,如有,则不进入睡眠,而是响应软中断;2、Wakeup唤醒在指定事件队列上睡眠的所有进程,并将她们放入可被调度的进程队列中。如进程尚未装入内存,则唤醒对换进程,如果被唤醒进程优先级高于当前进程的优先级,则置调度标识,然后恢复处理机的运行级后返回;10.3.2 信号机制信号机制1、信号机制的基本概念信号机制作为在同一用户的诸进程之间通信的简单工具。信号本身为一个119的某个整数,用来代表某个事先约定的简单消息。进程在调度执行时,都要通过信号机制检查是否有信号到达。如有信号到达,则中断正执行的进程,转向由该信号所指示的处理程序,完成对所发生的事件的处理。处理完后,再返回此前的断点处

8、继续执行,信号机制又被称为软中断;信号与中断的相似之处表现为:都是异步通信方式;信号与中断的差异:中断有优先级,信号机制没有,信号处理程序在用户态下运行,而中断处理程序在核心态下运行,中断是及时的,信号响应有延时;2、信号机制的功能1)发送信号通过kill系统调用发送信号,如果进程正睡眠,则被唤醒;2)设置对信号的处理方式 利用系统调用signal(sig,func)预置信号处理方式:(1)func=1,进程对信号不予理睬,即屏蔽信号; (2)func=0,进程收到信号后自我终止; (3)func为非0非1整数时,func指向信号处理程序指针;3)对信号的处理当进程进入或退出一个低优先级睡眠状

9、态市,或从核心态返回用户态时,核心要检查进程是否收到信号,系统从核心转为用户态后,便转向相应信号处理程序,处理完后,再返回用户程序断点;10.3.3 管道机制1、管道类型1)无名管道利用系统调用pipe建立的临时文件,只有调用pipe的进程及其子孙进程才能识别此文件;2)有名管道利用系统调用mknod建立,在文件系统中长期存在;2、对无名管道的读写1)pipe文件大小限制为提高运行效率,pipe文件只使用索引节点中的十个直径地址;2)进程互斥读写进程互斥访问pipe文件,在访问pipe文件前,都必须先检查该索引节点是否上锁,如果上锁,则进程进入睡眠;3)进程写管道读写进程必须同步,数据写满后,

10、唤醒因该管道空而睡眠的进程,如果管道无足够空间存放要写入的数据,则让写进程进入睡眠;4)进程读管道读取完数据后,唤醒等待写入的进程;10.3.4 消息机制1、消息和消息队列1)消息消息是一个格式化、可变长度的信息单元。为了方便管理,将消息分为消息首部和消息数据两部分。在消息首部中,记录了消息的类型和大小;2)消息队列消息排列成一个消息队列2、消息队列的建立与操作1)消息队列建立调用msgget建立一个消息队列,返回一个消息队列描述符;2)消息队列的操纵调用msgctl查询指定消息队列的属性,如队列中的消息数目;3、消息发送与接收1)消息的发送调用msgsnd发送消息,唤醒等待消息的进程;2)消息的接收调用msgrcv从指定消息队列接收一个消息。10.3.5 共享存储区机制1、共享存储区UNIX中通信速度最高的通信机制。通信双方将共享存储区映射到自己的虚拟地址空间;2、共享存储区的建立与操纵1)共享存储区的建立调用shmget建立共享存储区;2)共享存储区的操纵调用shmctl返回共享存储区的状态信息;3、共享存储区的附接与断开调用shmat将共享存储区映射至指定进程的虚拟地址,调用shmdt将该共享区与进程虚拟地址断开;10.3.6 信号量集机制1、信号量与信号量集1)信号量在UNIX中未采用wait与signal,而是用semop对指定信号量进行操作,使用s

温馨提示

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

评论

0/150

提交评论