UNIX系统内核结构演示课件
合集下载
第十章 UNIX系统内核结构.ppt

2019-8-12
感谢你的观赏
10
第十章 UNIX系统内核结构
10.1.2 UNIX系统的特征
1.开放性
UNIX系统最本质的特征是开放性。所谓开放性,是指 系统遵循国际标准规范;凡遵循国际标准所开发的硬件和软 件,均能彼此兼容,并可方便地实现互连。开放性已成为20 世纪90年代计算机技术的核心问题,也是一个新推出的系统 或软件能否被广泛应用的重要因素。人们普遍认为: UNIX是 目前开放性最好的OS,是目前惟一能稳定运行在从微型机 到大、中型等各种机器上的OS,而且还能方便地将已配置 了UNIX OS的机器互连成计算机网络。
2019-8-12
感谢你的观赏
15
第十章 UNIX系统内核结构
10.1.3 UNIX系统的内核结构
可以把整个UNIX系统分成四个层次。其最低层是硬件, 作为整个系统的基础。次低层是OS核心,包括前面所介绍的 进程管理、存储器管理、设备管理和文件管理四大资源管理 功能。上面第二层是OS与用户的接口Shell以及编译程序等。 最高层是应用程序。作为OS的核心,它应具有两方面的接口: 一方面是核心与硬件的接口,它通常是由一组驱动程序和一 些基本的例程所组成的;另一方面就是核心与Shell的接口, 它由两组系统调用及命令解释程序等所组成。核心本身又可 分成两大部分:一部分是进程控制子系统;另一部分则是文 件子系统。 两组系统调用分别与这两大子系统交互。图10-1 示出了UNIX核心的框图。
2019-8-12
感谢你的观赏
13
第十章 UNIX系统内核结构
4.丰富的网络功能
UNIX系统还提供了十分丰富的网络功能。作为Internet网 络技术基础的TCP/IP协议, 便是在UNIX系统上开发出来的, 并已成为UNIX系统不可分割的部分。UNIX系统还提供了许 多最常用的网络通信协议软件,其中包括网络文件系统NFS 软件、客户/服务器协议软件Lan Manager Client/Server及 IPX/SPX软件等。通过这些产品可以实现在各UNIX 系统之间, UNIX与Novell的Netware,以及MS-Windows NT、IBM LAN Server等网络之间的互连和互操作。
第九章UNIX内核结构.

39
消息的发送
系统调用 msgsnd()可用来发送消息。 msgsnd(msgid,msgp,msgsz,msgflg)
msgid表示消息队列标识,即消息要发送到的消息 队列。 msgp指向要发送的消息 msgsz要发送的消息的大小 msgflg规定当无内存空间存储消息时,进程是等待 还是立即返回。
2
9.1.2 UNIX系统结构
UNIX简略结构
用户程序
编译程 序
Shell edit kernel
硬件
实用程序
3
UNIX核心框图
用户程序
陷入
程序库
系统调用接口
文件子系统
IPC
缓存
字符
设备驱动
进程控制 子系统
调度程序 存储管理
核 心 部 分
块
硬件控制
硬
件
4
UNIX层次结构说明
硬件:可以是便携机、个人机、工作站、大中小型 机等
29
进程从核态返回目态时要检测信号位,若某 位被置位则中断正在执行的程序,转向与该信 号对应的处理程序。完成后返回断点执行。 信号机制是对中断机制的模拟,故在早期又 称软中断。
30
信号机制与中断机制的比较
相同点: 都采用异步通信方式 当检测到信号或中断时,暂停当前程序的执 行,转去执行相应处理程序 处理完后回到断点 信号和中断都可进行屏蔽
Ppri= Pcpu/2+PUSER+Pnice+NZERO
其中: 。PUSER,NZERO—是优先数基值; 。Pcpu—是每个进程最近一次使用 CPU的时间;
。Pnice—是用户设置的进程优先数偏移值。 普通用户只可增大Pnice
24
消息的发送
系统调用 msgsnd()可用来发送消息。 msgsnd(msgid,msgp,msgsz,msgflg)
msgid表示消息队列标识,即消息要发送到的消息 队列。 msgp指向要发送的消息 msgsz要发送的消息的大小 msgflg规定当无内存空间存储消息时,进程是等待 还是立即返回。
2
9.1.2 UNIX系统结构
UNIX简略结构
用户程序
编译程 序
Shell edit kernel
硬件
实用程序
3
UNIX核心框图
用户程序
陷入
程序库
系统调用接口
文件子系统
IPC
缓存
字符
设备驱动
进程控制 子系统
调度程序 存储管理
核 心 部 分
块
硬件控制
硬
件
4
UNIX层次结构说明
硬件:可以是便携机、个人机、工作站、大中小型 机等
29
进程从核态返回目态时要检测信号位,若某 位被置位则中断正在执行的程序,转向与该信 号对应的处理程序。完成后返回断点执行。 信号机制是对中断机制的模拟,故在早期又 称软中断。
30
信号机制与中断机制的比较
相同点: 都采用异步通信方式 当检测到信号或中断时,暂停当前程序的执 行,转去执行相应处理程序 处理完后回到断点 信号和中断都可进行屏蔽
Ppri= Pcpu/2+PUSER+Pnice+NZERO
其中: 。PUSER,NZERO—是优先数基值; 。Pcpu—是每个进程最近一次使用 CPU的时间;
。Pnice—是用户设置的进程优先数偏移值。 普通用户只可增大Pnice
24
UNIX操作系统简介PPT课件

drwxr-xr-x 2 root other 512 Oct 20 20:00 temp -rw-r--r-- 1 root other 23 Dec 20 16:06 abc.txt
文件 类型 文件
权限
属主 组
链接 数
文件 大小
文件 创建 日期 时间
文件 名
-
P13
UNIX文件信息
文件类型:-
1983年,贝尔实验室发布第一个商业版本的UNIX,系统V的版本1, 即SVR1。
-
P44
UNIX标准版本
传统的UNIX标准版本主要如下两个: UNIX System V 原是AT&T公司制定的标准版本,后来成为工业
标准。目前流行版本是SVR 3.2、SVR 4.0、SVR 4.2 (SVR的全称 是System V Release) 。SCO UNIX就是采用的就是UNIX System V。
UNIX操作系统提示符一般为”#”。
进程(Process) 正在执行的程序。UNIX允许多个进程同时存在,每个进程
都有唯一代号称为进程标识符(pid --- process id)。
-
P28
几个基本概念
前台进程(Foreground process) 可以和用户直接进行人机交互的进程。前台进程程序可以接
3 设备文件 代表某种设备,一般放在/dev目录下,如 /dev/cd0表示光驱。设备文件可分为块设备文件和字符设备 文件,块设备文件以区块为输入输出单元,如磁盘;字符设 备文件是以字符作为输入输出单元,如串口。
4 符号链接文件包含一指针,指向文件的位置。
-
P12
UNIX文件信息
UNIX文件信息包括文件的类型、名字、大小、最近修改日期、操 作权限等等。如:
文件 类型 文件
权限
属主 组
链接 数
文件 大小
文件 创建 日期 时间
文件 名
-
P13
UNIX文件信息
文件类型:-
1983年,贝尔实验室发布第一个商业版本的UNIX,系统V的版本1, 即SVR1。
-
P44
UNIX标准版本
传统的UNIX标准版本主要如下两个: UNIX System V 原是AT&T公司制定的标准版本,后来成为工业
标准。目前流行版本是SVR 3.2、SVR 4.0、SVR 4.2 (SVR的全称 是System V Release) 。SCO UNIX就是采用的就是UNIX System V。
UNIX操作系统提示符一般为”#”。
进程(Process) 正在执行的程序。UNIX允许多个进程同时存在,每个进程
都有唯一代号称为进程标识符(pid --- process id)。
-
P28
几个基本概念
前台进程(Foreground process) 可以和用户直接进行人机交互的进程。前台进程程序可以接
3 设备文件 代表某种设备,一般放在/dev目录下,如 /dev/cd0表示光驱。设备文件可分为块设备文件和字符设备 文件,块设备文件以区块为输入输出单元,如磁盘;字符设 备文件是以字符作为输入输出单元,如串口。
4 符号链接文件包含一指针,指向文件的位置。
-
P12
UNIX文件信息
UNIX文件信息包括文件的类型、名字、大小、最近修改日期、操 作权限等等。如:
UNIX系统内核结构

4. 用户文件描述符表——记录该进程打开的所有文件
5. 当前记录和当前根——给出进程的文件系统环境 6. 计时器——记录进程及其后代在用户态和核心态运行的时间 7. 内部I/O参数——数据量、数据的地址和文件的I/O偏移量 8. 限制字段——进程的大小和能“写”的文件大小的限制 9. 差错字段——记录系统调用执行时发生的错误 10. 返回值——记录系统调用的执行结果
11. 信号处理数组——记录接收到不同信号时的处理方式
返回本节
第10章 UNIX系统内核结构
五、系统区表(System Region Table)
设置系统区表是为了对程序区(正文区)、数据区、 栈区等进行共享。该区表记录了下述信息。
1. 区的类型和大小
2. 区的状态 3. 区的物理位置
4. 引用计数(共享该区的进程数)
:屏蔽信号,对信号不理会
:缺省值;进程收到信号后自我终止
(3) func=0、1外的整数:把此func作为指向事件处理程序的指针 返回本节
第10章 UNIX系统内核结构
3、对信号的处理 1) 仅当进程返回到用户态时才处理信号 2) 对信号的处理:根据func值的情况进行处理
返回本节
第10章 UNIX系统内核结构
返回本节
第10章 UNIX系统内核结构
10.3 进程的同步与通信
10.3.1 sleep与wakeup同步机制 10.3.2 信号(signal)机制
10.3.3 管道机制
10.3.4 消息机制
10.3.5 共享存储区机制
10.3.6 信号量集机制
返回本章首页
第10章 UNIX系统内核结构
10.3.1 sleep与wakeup同步机制
最新《UNIX内核分析》PPT课件课件ppt

if (p→p-stat==SSLEEP&&p→p-pri>PZERO)
/*p在可被中断优先级睡眠
setrun(p) ; }
/*运行指定进程,或调入/必要时
Issig();测试软中断信号,若收到不可忽略信号,返回真;
否则,返回假。
软中断处理入口表u-signal[NSIG]
根据表项中元素不同值,有三种信号处理方式 值为0:处理方式为终止本进程; 值为奇数:对该信号不作处理; 值为非零偶数:表示信号处理程序入口地址。
页长字段PLF:说明虚页的实际使用长度,1~128块 如果ED=0/向高地址方向扩展:则PLF=实际使用 长度-1;例如:实际使用长度为128,则PLF=127 如果ED=1:则PLF=128-实际使用长度;例如: 实际使用长度为128,则PLF=0 用补码表示实际使用长度 PLF值表示在相应扩展方向上该虚页实际使用的最 末块块号,便于越界检查
扩展方向位:ED(extend)
如果某页实际使用小于128块(8KB),则ED说明空白部分在高/低 地址一侧,即扩展时的扩展方向。
ED=0: 高地址一侧; ED=1: 低地址一侧 例如:Unix系统中,共享代码段/数据段:ED=0;栈段: ED=1
内存管理寄存器(3)
存取信息位W-修改位 W=1,表示修改过
12 11
0
内存管理寄存器(2)
PLF/page length field W
15 14
86
ED ACF 3 21 0
页说明寄存器PDR/上图
存取控制字段ACF(access control field):说明对该页的 存取控制权限
00:不驻在内存 10:未用
01:read only 11:R/W
UNIX系统概述

UNIX进程和存储管理简介
UNIX系统的核心部分从整体上说可以分为两大部 分,即“静”的文件系统和“动”的进程控制系 统。 文件系统主要用来存放、管理那些暂时不被处理 机执行的程序和数据,它为程序和数据文件分配 空间,控制文件存取和为用户检索信息。 进程控制系统则负责为将要执行的程序和数据文 件分配内存空间,并负责进程调度、控制并发进 程的执行速度和分配必要的资源,以及负责进程 通信和内存管理等 UNIX 的进程控制系统与文件系统之间通过系统调
UNIX 系统结构
UNIX系统结构
UNIX系统结构分为三层: 最低层是硬件。 次低层是UNIX操作系统核心,它包括文件控制系统和 进程控制系统两大部分。 上面第二层(中间层)是shell命令解释层、实用程序、 库函数等。 该层中的shell解释程序是用户和UNIX操作系统的操作 界面。 最外层是用户程序,包括许多应用软件。 UNIX的系统结构如图所示:
UNIX的进程存储管理采用交换(swapping)和请求调页 (demand paging)两种策略完成。 1)交换存储策略 交换操作由进程0完成(与进程调度共同进行),早期 UNIX采用全交换策略(调度时在内存和交换区间传送整个 进程),新版UNIX采用部分交换策略(每次只交换进程的 部分内容)。 2)请求调页策略(页式虚拟存储管理策略) 进程的proc结构存入常驻内存页面; 当发生进程调度时,将user结构及部分页面=》工作集; 当访问的页面不在工作集时,发生缺页中断; 缺页中断 处理程序更新工作集的内容。
Unix 中的进程
在不同的执行模式下执行时,同一进程使用不同的堆栈 和不同的管理数据结构。在两种不同模式下执行的程序 不能互相访问各自的堆栈,它们之间的参数传递需要借 助通用寄存器等硬件。 用户态下的进程能存取它们自己的指令和数据,但不能 存取核心指令和数据。核心态下的进程能存取核心和用 户地址。 UNIX进程的核心态和用户态之间的转换靠中断以及硬件 设置等方法完成,当用户进程由用户态转向核心态执行 时,需要依靠中断或陷阱来实现。在核心态执行的进程 只有通过设置程序状态寄存器PSW才能回到用户态。
《UNIX操作系统》课件

数据库管理工具
数据库备份与恢复
MySQL、PostgreSQL等
MongoDB、Redis等
phpMyAdmin、MySQL Workbench等
定期备份、灾难恢复等
自动化部署工具
Ansible、Chef等
监控工具
Zabbix、Nagios等
日志管理工具
ELK Stack(Elasticsearch、Logstash、Kibana)等
持续集成与持续部署(CI/CD)
Jenkins、GitLab CI/CD等
THANKS
感谢您的观看。
《Unix操作系统》PPT课件
目录
Unix操作系统概述Unix系统基础Unix系统管理和维护Unix网络配置和管理Unix系统编程Unix系统应用实例
01
CHAPTER
Unix操作系统概述
01
1969年,AT&T的贝尔实验室的肯·汤普森和丹尼斯·里奇开发出了Unix的原型。
02
1973年,Unix正式发布,并被移植到了PDP-11小型机上。
函数与程序结构
介绍函数的定义、声明和调用,以及程序的基统调用与库函数的比较与选择
06
CHAPTER
Unix系统应用实例
Web服务器软件
Apache、Nginx等
性能优化
缓存、负载均衡等
安全性配置
防火墙设置、SSL证书配置等
配置过程
安装、配置、测试、优化
关系型数据库
非关系型数据库
磁盘管理
掌握磁盘分区、格式化、挂载和卸载等操作,维护磁盘空间和文件系统。
系统日志
查看和分析系统日志,及时发现和解决系统问题。
02
03
数据库备份与恢复
MySQL、PostgreSQL等
MongoDB、Redis等
phpMyAdmin、MySQL Workbench等
定期备份、灾难恢复等
自动化部署工具
Ansible、Chef等
监控工具
Zabbix、Nagios等
日志管理工具
ELK Stack(Elasticsearch、Logstash、Kibana)等
持续集成与持续部署(CI/CD)
Jenkins、GitLab CI/CD等
THANKS
感谢您的观看。
《Unix操作系统》PPT课件
目录
Unix操作系统概述Unix系统基础Unix系统管理和维护Unix网络配置和管理Unix系统编程Unix系统应用实例
01
CHAPTER
Unix操作系统概述
01
1969年,AT&T的贝尔实验室的肯·汤普森和丹尼斯·里奇开发出了Unix的原型。
02
1973年,Unix正式发布,并被移植到了PDP-11小型机上。
函数与程序结构
介绍函数的定义、声明和调用,以及程序的基统调用与库函数的比较与选择
06
CHAPTER
Unix系统应用实例
Web服务器软件
Apache、Nginx等
性能优化
缓存、负载均衡等
安全性配置
防火墙设置、SSL证书配置等
配置过程
安装、配置、测试、优化
关系型数据库
非关系型数据库
磁盘管理
掌握磁盘分区、格式化、挂载和卸载等操作,维护磁盘空间和文件系统。
系统日志
查看和分析系统日志,及时发现和解决系统问题。
02
03
UNIX系统内核结构.

(1) 关闭软中断。
(2) 回收资源。
(3) 写记账信息。
(4) 置进程为“僵死”状态。
第九章 UNIX系统内核结构
4. wait系统调用 wait系统调用用于将调用进程挂起, 直至其子进程因暂 停或终止而发来软中断信号为止。如果在wait调用前,已有 子进程暂停或终止,则调用进程做适当处理后便返回。核心 对wait调用做以下处理:核心查找调用进程是否还有子进程, 若无,便返回出错码;如果找到一个处于“僵死”状态的子 进程,便将子进程的执行时间加到其父进程的执行时间上,
2. 文件子系统
(1) 文件管理。
(2) 高速缓冲机制。 (3) 设备驱动程序。
第九章 UNIX系统内核结构
10.2 进程的描述和控制
10.2.1 进程控制块PCB
在UNIX系统Ⅴ中, (1) (2) U区。 (3) 进程区表。 (4) 系统区表。
第九章 UNIX系统内核结构
1. 进程表项(Process Table Entry) (1) 进程标识符(PID)。
志runrun予以置位,以引起调度程序重新调度。其次,当进程
执行了wait、exit及sleep等系统调用后要放弃处理机时, 也会 引起调度程序重新进行调度。此外,当进程执行完系统调用 功能而从核心态返回到用户态时,如果系统中又出现了更高 优先级的进程在等待处理机时,内核应抢占当前进程的处理
机, 这也会引起调度。
(2) 用户标识符(UID)。
(3) 进程状态。 (4) 事件描述符。
(5) 进程和U区在内存或外存的地址。
(6) 软中断信息。 (7) 计时域。
(8) 进程的大小。
(9) 偏置值nice。 (10) P-Link指针。 (11) 指向U区进程正文、 数据及栈在内存区域的指针。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
第十章 UNIX系统内核结构
3. 系统区表(System Region Table) (1) 区的类型和大小。 (2) 区的状态。 (3) 区在物理存储器中的位置。 (4) 引用计数。 (5) 指向文件索引结点的指针。
10
第十章 UNIX系统内核结构
4. 本进程区表(Per Process Region Table)
第十章 UNIX系统内核结构
第十章 UNIX系统内核结构
10.1 UNIX 系统概述 10.2 进程的描述和控制 10.3 进程的同步与通信 10.4 存储器管理 10.5 设备管理 10.6 文件管理
1
第十章 UNIX系统内核结构
10.1 UNIX系统概述
10.1.1 UNIX 系统的发展史
1. UNIX 2. 两大集团对峙 3. 网络操作系统UNIX
(1) 关闭软中断。 (2) 回收资源。 (3) 写记账信息。 (4) 置进程为“僵死”状态。
17
第十章 UNIX系统内核结构
4. wait系统调用
wait系统调用用于将调用进程挂起, 直至其子进程因暂 停或终止而发来软中断信号为止。如果在 wait调用前,已有 子进程暂停或终止,则调用进程做适当处理后便返回。核心 对wait调用做以下处理:核心查找调用进程是否还有子进程, 若无,便返回出错码;如果找到一个处于“僵死”状态的子 进程,便将子进程的执行时间加到其父进程的执行时间上, 并释放该子进程的进程表项; 如果未找到处于“僵死”状 态的子进程,则调用进程便在可被中断的优先级上睡眠,等 待其子进程发来软中断信号时被唤醒。
6
第十章 UNIX系统内核结构
10.2 进程的描述和控制
10.2.1 进程控制块 PCB
在UNIX系统Ⅴ中, (1) (2) U区。 (3) 进程区表。 (4) 系统区表。
7
第十章 UNIX系统内核结构
1. 进程表项(Process Table Entry)
(1) 进程标识符(PID)。 (2) 用户标识符(UID)。 (3) 进程状态。 (4) 事件描述符。 (5) 进程和U区在内存或外存的地址。 (6) 软中断信息。 (7) 计时域。 (8) 进程的大小。 (9) 偏置值nice。 (10) P-Link指针。 (11) 指向U区进程正文、 数据及栈在内存区域的指针。8
第十章项指针。 (2) 真正用户标识符u-ruid(real user ID)。 (3) 有效用户标识符u-euid(effective user ID)。 (4) 用户文件描述符表。 (5) 当前目录和当前根。 (6) 计时器。 (7) 内部I/O参数。 (8) 限制字段。 (9) 差错字段。 (10) 返回值。 (11) 信号处理数组。
1. 进程状态 中断
中断返回
僵死
系统调 用 中断 5 返回
用户态 执行 返回到用户态
内存中 睡眠
睡眠 且换出
9 睡眠
6
换 出
4
核心态 执行
唤醒
抢夺 调度
8 被抢夺
2 内存中就绪
换换 出入
内存足 创建fork 1
内存不 足
7
唤醒
3 就绪且 换出
13
图 10-4 进程的状态转换
第十章 UNIX系统内核结构
A 正文 进
程 数据
区 表栈
a
a
b
b
c
c
B 正文 进
程 数据
区 表栈
d e
系统区表
d e
图 10-2 进程区表项、系统区表项和区的关系 11
第十章 UNIX系统内核结构
本进程区表 U区
进程表
系统区表
a
b c
a
b
c
图 10-3 进程的数据结构
12
第十章 UNIX系统内核结构
10.2.2 进程状态与进程映像
15
第十章 UNIX系统内核结构
2. exec系统调用
trap path arg v
文 件 名字 符 串 参 数 字符 串
0 arg 2p arg 1p arg 0p
图 10-5 exec Ⅴ的参数组织方式 16
第十章 UNIX系统内核结构
3. exit系统调用 通常,父进程在创建子进程时,应在进程的末尾安排 一条exit,使子进程能自我终止。内核须为 exit完成以下操
18
第十章 UNIX系统内核结构
10.2.4 进程调度与切换
1.
首先,由于 UNIX系统是分时系统,因而其时钟中断处理 程序须每隔一定时间,便对要求进程调度程序进行调度的标 志runrun予以置位,以引起调度程序重新调度。其次,当进程 执行了wait、exit及sleep等系统调用后要放弃处理机时, 也会 引起调度程序重新进行调度。此外,当进程执行完系统调用 功能而从核心态返回到用户态时,如果系统中又出现了更高 优先级的进程在等待处理机时,内核应抢占当前进程的处理 机, 这也会引起调度。
19
第十章 UNIX系统内核结构
2. 调度算法 进程调度,在此是采用动态优先数轮转调度算法。 调度程序在进行调度时,首先从处于“内存就绪”或 “被抢占”状态的进程中,选择一个其优先数最小 (优先 级最高 )的进程。若此时系统中 (同时)有多个进程都具有 相同的最高优先级,则内核将选择其中处于就绪状态或 被抢占状态最久的进程,将它从其所在队列中移出,并 进行进程上下文的切换, 恢复其运行。
文件子系统
高速缓存
字符设备
块设备
设备驱动程序
进程控制 子系统
进程间通信 调度
存储管理
核心级 硬件级
硬件控制 硬件
图框的心核
图
1- 0 1 UNIX
4
第十章 UNIX系统内核结构
1. (1) 进程控制。 (2) 进程通信。 (3) 存储器管理。 (4) 进程调度。
5
第十章 UNIX系统内核结构
2. 文件子系统 (1) 文件管理。 (2) 高速缓冲机制。 (3) 设备驱动程序。
2
第十章 UNIX系统内核结构
10.1.2 UNIX 系统的特征
1) 开放性 2) 多用户、 多任务环境 3) 功能强大, 实现高效 4) 提供了丰富的网络功能 5) 支持多处理器功能
3
第十章 UNIX系统内核结构
10.1.3 UNIX 系统的内核结构
捕俘
用户程序
用户级 核心级
系统调用接口
库函数
2. 进程映像
1) 用户级上下文 2) 寄存器上下文 (1) 程序寄存器。 (2) 处理机状态寄存器(PSR)。 (3) 栈指针。 (4) 通用寄存器。 3) 系统级上下文 (1) 静态部分。 (2) 动态部分。
14
第十章 UNIX系统内核结构
10.2.3 进程控制
1. fork系统调用 (1) 为新进程分配一个进程表项和进程标识符。 (2) 检查同时运行的进程数目。 (3) 拷贝进程表项中的数据。 (4) 子进程继承父进程的所有文件。 (5) 为子进程创建进程上下文。 (6) 子进程执行。
第十章 UNIX系统内核结构
3. 系统区表(System Region Table) (1) 区的类型和大小。 (2) 区的状态。 (3) 区在物理存储器中的位置。 (4) 引用计数。 (5) 指向文件索引结点的指针。
10
第十章 UNIX系统内核结构
4. 本进程区表(Per Process Region Table)
第十章 UNIX系统内核结构
第十章 UNIX系统内核结构
10.1 UNIX 系统概述 10.2 进程的描述和控制 10.3 进程的同步与通信 10.4 存储器管理 10.5 设备管理 10.6 文件管理
1
第十章 UNIX系统内核结构
10.1 UNIX系统概述
10.1.1 UNIX 系统的发展史
1. UNIX 2. 两大集团对峙 3. 网络操作系统UNIX
(1) 关闭软中断。 (2) 回收资源。 (3) 写记账信息。 (4) 置进程为“僵死”状态。
17
第十章 UNIX系统内核结构
4. wait系统调用
wait系统调用用于将调用进程挂起, 直至其子进程因暂 停或终止而发来软中断信号为止。如果在 wait调用前,已有 子进程暂停或终止,则调用进程做适当处理后便返回。核心 对wait调用做以下处理:核心查找调用进程是否还有子进程, 若无,便返回出错码;如果找到一个处于“僵死”状态的子 进程,便将子进程的执行时间加到其父进程的执行时间上, 并释放该子进程的进程表项; 如果未找到处于“僵死”状 态的子进程,则调用进程便在可被中断的优先级上睡眠,等 待其子进程发来软中断信号时被唤醒。
6
第十章 UNIX系统内核结构
10.2 进程的描述和控制
10.2.1 进程控制块 PCB
在UNIX系统Ⅴ中, (1) (2) U区。 (3) 进程区表。 (4) 系统区表。
7
第十章 UNIX系统内核结构
1. 进程表项(Process Table Entry)
(1) 进程标识符(PID)。 (2) 用户标识符(UID)。 (3) 进程状态。 (4) 事件描述符。 (5) 进程和U区在内存或外存的地址。 (6) 软中断信息。 (7) 计时域。 (8) 进程的大小。 (9) 偏置值nice。 (10) P-Link指针。 (11) 指向U区进程正文、 数据及栈在内存区域的指针。8
第十章项指针。 (2) 真正用户标识符u-ruid(real user ID)。 (3) 有效用户标识符u-euid(effective user ID)。 (4) 用户文件描述符表。 (5) 当前目录和当前根。 (6) 计时器。 (7) 内部I/O参数。 (8) 限制字段。 (9) 差错字段。 (10) 返回值。 (11) 信号处理数组。
1. 进程状态 中断
中断返回
僵死
系统调 用 中断 5 返回
用户态 执行 返回到用户态
内存中 睡眠
睡眠 且换出
9 睡眠
6
换 出
4
核心态 执行
唤醒
抢夺 调度
8 被抢夺
2 内存中就绪
换换 出入
内存足 创建fork 1
内存不 足
7
唤醒
3 就绪且 换出
13
图 10-4 进程的状态转换
第十章 UNIX系统内核结构
A 正文 进
程 数据
区 表栈
a
a
b
b
c
c
B 正文 进
程 数据
区 表栈
d e
系统区表
d e
图 10-2 进程区表项、系统区表项和区的关系 11
第十章 UNIX系统内核结构
本进程区表 U区
进程表
系统区表
a
b c
a
b
c
图 10-3 进程的数据结构
12
第十章 UNIX系统内核结构
10.2.2 进程状态与进程映像
15
第十章 UNIX系统内核结构
2. exec系统调用
trap path arg v
文 件 名字 符 串 参 数 字符 串
0 arg 2p arg 1p arg 0p
图 10-5 exec Ⅴ的参数组织方式 16
第十章 UNIX系统内核结构
3. exit系统调用 通常,父进程在创建子进程时,应在进程的末尾安排 一条exit,使子进程能自我终止。内核须为 exit完成以下操
18
第十章 UNIX系统内核结构
10.2.4 进程调度与切换
1.
首先,由于 UNIX系统是分时系统,因而其时钟中断处理 程序须每隔一定时间,便对要求进程调度程序进行调度的标 志runrun予以置位,以引起调度程序重新调度。其次,当进程 执行了wait、exit及sleep等系统调用后要放弃处理机时, 也会 引起调度程序重新进行调度。此外,当进程执行完系统调用 功能而从核心态返回到用户态时,如果系统中又出现了更高 优先级的进程在等待处理机时,内核应抢占当前进程的处理 机, 这也会引起调度。
19
第十章 UNIX系统内核结构
2. 调度算法 进程调度,在此是采用动态优先数轮转调度算法。 调度程序在进行调度时,首先从处于“内存就绪”或 “被抢占”状态的进程中,选择一个其优先数最小 (优先 级最高 )的进程。若此时系统中 (同时)有多个进程都具有 相同的最高优先级,则内核将选择其中处于就绪状态或 被抢占状态最久的进程,将它从其所在队列中移出,并 进行进程上下文的切换, 恢复其运行。
文件子系统
高速缓存
字符设备
块设备
设备驱动程序
进程控制 子系统
进程间通信 调度
存储管理
核心级 硬件级
硬件控制 硬件
图框的心核
图
1- 0 1 UNIX
4
第十章 UNIX系统内核结构
1. (1) 进程控制。 (2) 进程通信。 (3) 存储器管理。 (4) 进程调度。
5
第十章 UNIX系统内核结构
2. 文件子系统 (1) 文件管理。 (2) 高速缓冲机制。 (3) 设备驱动程序。
2
第十章 UNIX系统内核结构
10.1.2 UNIX 系统的特征
1) 开放性 2) 多用户、 多任务环境 3) 功能强大, 实现高效 4) 提供了丰富的网络功能 5) 支持多处理器功能
3
第十章 UNIX系统内核结构
10.1.3 UNIX 系统的内核结构
捕俘
用户程序
用户级 核心级
系统调用接口
库函数
2. 进程映像
1) 用户级上下文 2) 寄存器上下文 (1) 程序寄存器。 (2) 处理机状态寄存器(PSR)。 (3) 栈指针。 (4) 通用寄存器。 3) 系统级上下文 (1) 静态部分。 (2) 动态部分。
14
第十章 UNIX系统内核结构
10.2.3 进程控制
1. fork系统调用 (1) 为新进程分配一个进程表项和进程标识符。 (2) 检查同时运行的进程数目。 (3) 拷贝进程表项中的数据。 (4) 子进程继承父进程的所有文件。 (5) 为子进程创建进程上下文。 (6) 子进程执行。