linux 计算机 操作系统 Linux
2022-04-15 12:07:01 1 举报
AI智能生成
计算机操作系统
作者其他创作
大纲/内容
OperatingSystem
处理机管理/进程管理
进程
进程是进程实体的运行过程,是系统资源分配和调度的独立单位<br>注:通常所说创建进程是创建进程实体中的PCB<br>
进程的创建、撤销、切换需要消耗较大的系统<b>时空开销</b>
进程组成
程序段
数据
进程控制块PCB<br>(Process Control Block)
内容
进程表<br>Process Table Entry
进程标识符<br>PID
用户标识符<br>UID
进程状态
处理机状况
事件描述符
记录使进程进入睡眠状态的事件
进程和U区在内外存的地址<br>
核心利用这些信息做上下文切换
软中断信息
记录其它进程发来的软中断信号
计时域
记录进程的执行时间和对资源的利用情况
进程大小
核心为进程分配存储空间时的依据,包括正文长度和栈长度等<br>
偏置值(nice值)
用于计算进程调度的优先级
P_Link指针<br>
指向就绪队列中下一PCB块
指向U区进程正文、数据及栈在内存区域的指针<br>
U区
进程表项指针
指向正在执行进程的进程表项
真正用户标识符u-ruid
有效用户标识符u-euid
默认与ruid相同,可通过系统调用setuid改为其<br>他用户标识符,以获得该用户对文件的操作权限<br>
用户文件描述符表
记录了该进程已打开的所有文件
当前目录与当前根
记录进程的文件系统环境
计时器
该进程及其后代在核心态与用户态的执行时间
内部I/O参数
记录要传输的数据量、源(或目标)数据的地址、文件的输入/输出偏移量<br>
限制字段
限制进程大小及其能“写”的文件大小
差错字段
记录系统调用执行期间所发生的错误
返回值
记录系统调用的执行结果
信号处理数组
指示在接收到每一种信号时的处理方式<br>
系统区表
区的类型和大小
区的状态
锁住
请求中
装入中<br>
有效(区以装入内存)<br>
区在物理存储器中的位置<br>
引用计数
共享该区的进程数
指向文件索引节点的指针
进程区表
进程调度信息
进程状态
进程优先级
相关信息<br>如:已等待、已执行的时间总和等信息
触发状态转换的事件
进程控制信息
程序和数据的地址
进程同步和通信机制
资源清单
链接指针<br>注:指向链表中下一PCB的首地址
组织方式
链接方式
把具有同一状态的PCB链接成队列
索引方式
通过索引表的形式索引PCB
进程镜像<br>Process Image<br>
用户级上下文
正文区
数据区
栈区
寄存器上下文
程序寄存器
处理机状态寄存器
栈指针
通用寄存器
系统级上下文
静态部分
进程表
U区
进程区表
系统区表
动态部分<br>
核心栈
核心态是使用
若干层寄存器上下文
每一层都保存了上一层的上下文
进程状态
创建状态
进程以获取PCB及标识等信息,但未获得内存等资源
就绪状态<br>(Ready)
准备就绪,但未获得CPU执行资源
就绪队列
处于就绪状态等待获取CPU执行资源的进程队列
执行状态
用户态
核心态
执行系统调用<br>
阻塞状态
挂起状态
终止状态(僵尸)
进程停止并已释放资源但状态信息有待提取
进程控制
1、对进程的创建、撤销、运行协调、运行状态转换、信息交换等进行管理<br>2、为进程创建、撤销线程
fork调用
为新进程分配一个进程表和进程标识符
检查同时运行的进程数目是否超过限制
拷贝父进程表中数据到子进程表中,并置状态为“创建”<br>
继承父进程的所有文件
继承父进程上下文的静态部分,并创建上行下文的动态部分
子进程执行并将U区计时字段初始化为0<br>
exec调用
检查可执行文件
回收进程原有的存储空间
重新分配存储空间
将命令参数拷贝到栈区<br>
exit调用
关闭软中断<br>
回收资源<br>
将记账信息写入全局记账文件<br>
置进程状态为“僵死”状态
wait调用
用于将调用进程挂起,直至其子进程因暂停或中止而发来软中断信号为止<br>注:wait挂起进程释放资源,sleep进程睡眠不释放资源
进程优先级<br>
核心优先级
可中断优先级
等待输入
等待终端输出
等待子进程退出
不可中断优先级
Swap
等待磁盘I/O
等待缓冲区
用户优先级
优先数=最近CPU使用时间/2 + nice值<br>
0级最高,n级最低
中断
信号机制(软中断)
中断机制
进程同步
目的
对多个进程、线程的运行进行协调
原则
空闲让进
当临界资源处于空闲状态时,允许请求进入临界区的进程进入自己的临界区
忙则等待
当临界资源正被访问时,请求进入自己临界区的进程需等待以保证临界资源的互斥访问
有限等待
对请求访问临界资源的进程,保证在有限时间内进入自己的临界区,防止陷入“死等”
让权等待
当进程无法进入自己的临界区应立即释放处理机,以免陷入“忙等”
方式
信号量<br>Semaphore
锁<br>Lock
管程<br>Monitor
进程通信
共享存储器系统
共享数据结构
共享存储区
消息传递系统
直接通信
间接通信
信箱
管道
管道文件
消息缓冲队列
消息缓冲区
进程/线程调度
高级调度<br>High Level Scheduling
低级调度<br>Low Level Scheduling
抢占式<br>Preemptive Mode
基于一定规则的,以争抢的方式获得处理机的使用权
原则
优先权原则
短作业有限原则
时间片原则
非抢占式<br>Nonepreemptive Mode
进程执行完才释放处理机,除非因某事件使进程放弃处理机
中级调度<br>Intermediate Level Scheduling
死锁<br>Dead Lock
产生的必要条件
互斥条件
进程所分配到的资源进行排他性使用
请求和保持条件
进程已获得一个资源,同时请求其他资源,但其他资<br>源已被占用,此时进程阻塞但是不会释放已获得的资源
不剥夺条件
进程已获得的资源未使用完之前不能被剥夺
环路等待条件
必然存在进程-资源环形链<br>P0...Pn以单向链路的形式请求另一个进程的资源
解除死锁
死锁预防
使必要条件中的2、3、4之一不能成立
死锁避免
系统分配资源前计算此次资源分配的安全性
死锁检测
资源分配图是否是完全可简化的
死锁解除
剥夺资源
撤销或挂起进程
存储器管理
<b>目的:</b>为程序运行提供环境,提高存储器利用率,逻辑上扩充内存
分类
CPU寄存器
寄存器
主存<br>RAM
高速缓存
主存
磁盘缓存
辅存
磁盘
可移动存储介质
内存分配
目的:用于记录内存空间的使用情况,作为内存分配的依据<br>按照一定的内存分配算法为程序分配内存空间<br>对使用完成的内存进行回收<br>
存储管理方式
单一连续分配
固定分区分配
动态分区分配
伙伴系统
哈希算法
可重定位分区分配
交换区<br>Swap
离散分配
分页存储管理
页
地址结构
页表
一级页表
两级页表
多级页表
地址转换机构
页表寄存器
分段存储管理
段
地址结构
段表
段表结构
地址转换机构
转换
虚拟存储器
指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储系统<br>
实现方式
分页请求系统
分段请求系统
特征
可将作业多次调入内存
可将作业置换出内存
逻辑上扩充内存容量
内存保护
确保各个程序都仅在自己的内存空间中运行,互不干扰
保护机制:设置两个界限寄存器,分别用于存放正在运行程序的上界和下界
<b>地址映射</b>
Notions: <br>1、源程序进过编译后生成目标程序,目标程序经过链接形成可装入程序。<br><b>程序的地址</b>从“0”开始,程序中的其它地址都是相对于起始地址计算的。<br>这些地址称为<b><font color="#c41230">逻辑地址</font></b>,其形成的<b>地址范围</b>称为<b><font color="#c41230">地址空间</font></b>。<br>2、内存中一系列<b>单元的地址</b>称为<b><font color="#c41230">物理地址</font></b>,其所限定的<b>地址范围</b>称为<b><font color="#c41230">内存空间</font></b>。<br>3、使用重定位寄存器进行地址转换
将<b><font color="#c41230">地址空间</font></b>中的<b><font color="#c41230">逻辑地址</font></b>转换为<b><font color="#c41230">内存空间</font></b>中对应的<b><font color="#c41230">物理地址</font></b>
内存扩充
利用虚拟存储技术,从逻辑上扩充内存容量
<b>请求调入</b>:允许在装入部分程序和数据的情况下启动<br>程序运行,并在后续运行中继续调入部分程序和数据
<b>置换</b>:当内存空间不足时将暂时闲置的程序与数据<br>调至磁盘上以腾出空间,将需要的程序与数据载入
设备管理
I/O系统
I/O设备
分类
类型
存储设备
输入/输出设备
传输速率
低速设备
中速设备
高速设备
信息交换单位
块设备<br>Block Device
以数据块为单位进行信息存取,如:磁盘,每个盘块大小为512B~4KB<br>
字符设备<br>Character Device
如:交互式终端
共享属性
独占设备
临界资源
共享设备
磁盘
虚拟设备
物理设备虚拟化成逻辑设备
接口
数据信号线
控制信号线
状态信号线
设备控制器
作用:协调CPU与I/O设备之间的数据交换
功能
接收、识别CPU命令
数据交换
标识、报告设备状态
识别设备地址
数据缓冲
数据差错检测
组成
控制器与处理机的接口
控制器与设备的接口
I/O逻辑
控制设备
I/O通道<br>I/O Channel
一种特殊的处理机,与CPU共享内存,具有执行I/O<br>指令的能力,并通过执行通道程序来控制I/O操作<br>
分类
字节多路通道<br>Byte Multiplexor Channel
多个子通道按单字节交叉向主通道传递数据
数组选择通道<br>Block Selector Channel<br>
含有一个分配型子通道,一段时间内只能控制<br>一台设备传输数据,数据按数组传递,效率高<br>
数组多路通道<br>Block Multiplexor Channel
含有多个非分配型子通道,分时使用主通道,数据按数组方式传递
总线系统
ISA总线<br>Industry Standard Architecture
带宽8位,速率2Mb/s<br>
EISA总线<br>Extended ISA
带宽32位,速率32Mb/s,连接12台设备<br>
局部总线<br>(Local Bus)
VESA总线<br>Video Electronic Standard Association<br>
带宽32位,速率132Mb/s,连接2~4台设备<br>
PCI总线<br>Peripheral Component Interface<br>
带宽64位,速率132Mb/s,支持10种外设
I/O控制方式
程序I/O<br>Programmed I/O
CPU不断轮询等待控制器读取数据
中断驱动I/O控制<br>Interrupt Driven
CPU不等待,控制器读取完数据后向CPU发送中断信号
直接存储器访问I/O控制<br>Direct Memory Access<br>
以数据块为传输单位<br>
数据直接对内存进行存取
控制器控制数据传输,CPU仅在开始与结束进行干预
I/O通道控制
DMA的扩展,每次操作一组数据块
缓冲管理
作用
缓和CPU与I/O之间速度不匹配的矛盾
减少CPU的中断频率
提高CPU与I/O设备的并行性
分类
单缓冲<br>(Single Buffer)
双缓冲<br>(Double Buffer)
循环缓冲
多个大小相同的缓冲区
指向下一个空缓冲区的指针
指向下一个写满数据的缓冲区的指针
指向当前正在使用的缓冲区的指针
缓冲池<br>(Buffer Pool)<br>
空缓冲区
空闲队列
装满输入数据的缓冲区
输入队列
装满输出数据的缓冲区
输出队列
临时<br>(从队列上获取)
收容输入缓冲区
提取输入缓冲区
收容输出缓冲区
提取输出缓冲区
设备分配
设备控制表
控制器控制表
通道控制表
系统设备表
SPOOLing技术将物理设备虚拟化<br>(Simutenous Peripheral Operating On Line)
外围控制机
输入缓冲区
输出缓冲区
磁盘
输入井
输出井
设备处理<br>(设备驱动程序)
磁盘
RAID<br>(Redundant Array of Inexpensive Disk)<br>
RAID0
交叉存取。<br>无冗余校验。
RAID1
交叉存取,磁盘镜像,冗余校验。<br>利用率低。
RAID2
RAID3
交叉存取,奇偶盘冗余校验<br>
RAID4
每个驱动器拥有独立的数据通路,<br>校验信息分布于所有磁盘上。适用<br>于I/O频繁的事物处理。
RAID5
RAID6
RAID7
文件管理
文件存储空间
文件目录
为每个文件建立一个<b>目录项</b>
目录项:文件名、文件属性、文件在磁盘上的物理地址等
文件读/写和保护
读/写指针
数据一致性
事务
特性
原子性<br>Atomicity
一致性<br>Consistency
隔离性<br>Isolation
持久性<br>Durability
检查点<br>Check Point
Notions
并行<br>Parallel
并行指两个或多个事件在同一时刻放生
并发<br>Concurrent
并发指两个或多个事件在同一时间间隔内发生
进程<br>Process<br>
进程:指在系统中能<b>独立运行</b>的活动实体并作为<b><font color="#c41230">资源<br>分配的基本单位</font></b>,有一组机器指令、数据和堆栈等组成。<br>注:在多线程的操作系统中,线程作为调度执行的基本单位<br>,进程不再是可执行的实体。
线程<br>Thread<br>
线程:比进程更小的<b style="color: rgb(196, 18, 48);">独立运行与独立调度的基本单位</b><br><font color="#000000">注:线程基本不拥有资源,共享其隶属的进程的资源</font>
线程控制块<br>TCB(Thread Control Block)
线程标识符
调度优先级
运行的CPU状态信息
时分复用
时分复用技术:对临界资源进行分时使用。通常用来实现虚拟处理机、虚拟设备。
空分复用
空分复用技术:对物理设备进行虚拟空间划分。如:Windows上磁盘的卷与逻辑驱动器。
临界资源<br>Critical Resource<br>
临界资源:进程间采取互斥的方式,实现共享的资源。
进入区<br>Entry Section
临界区前修改临界资源被访问状态的代码段
临界区<br>Critical Section
进程中访问临界资源的代码片段
退出区<br>Exit Section
临界区后恢复临界资源被访问状态的代码段
Fundamentals
提示符
#:代表UID为0的用户即root用户
$:代表普通用户
File Hierarchy
/
代表整个文件新系统的根目录
/root
root用户的主目录
/bin
/boot
/dev
/etc
/etc/hosts
存放主机域名映射信息
/etc/resolv.conf
DNS服务配置
/etc/nsswitch.conf
名称服务转换配置,配置通过不同的<br>名称服务解析域名,如:DNS, NIS, NIS+
/home
/lib
/media
/mnt
/opt
/sbin
/srv
/tmp
/usr
/usr/local
系统管理员本地安装软件时使用<br>建议:可将环境支持型的软件安装在这个目录下
/proc
0 条评论
下一页