计算机操作系统——知识点总结

来源:互联网 发布:mac版qq能收发文件吗 编辑:程序博客网 时间:2024/05/16 02:08

操作系统主要知识点总结

包括5个主要部分:概述,进程,处理机调度与死锁,存储器管理,虚拟存储器

另外的部分如文件管理,磁盘管理等相对不重要,下篇文章补充


一.概述

1.操作系统的发展
1)未配置系统
①.人工操作

②.脱机输入输出


2).单道批处理:内存中只有一个程序,作业依次运行
3)多道批处理:多个程序一起运行
4)分时:一个主机,多个终端
5)实时:在规定的时间内对外部时间做出响应

2.操作系统类型
1)单用户单任务
2)单用户多任务
3)多用户多任务

3.操作系统特性:
并发
共享
虚拟:将一个资源虚拟成多个使用,是用户感觉自己一个人使用一样
异步


4.操作系统功能
1)处理机管理
进程控制
进程同步
进程通信
调度:作业调度,进程调度

2)存储器管理
内存分配
内存保护
地址映射
内存扩充

3)设备管理
缓冲管理
设备分配
设备处理:利用设备处理程序(又称设备驱动程序)实现CPU和设备控制器之间的通信

4)文件管理
文件存储控制管理
目录管理
文件读写管理和保护

5)提供接口
用户接口:让用户可以控制自己的作业
程序接口:让程序调用系统的功能

6)新功能
系统安全
网络功能和服务
多媒体应用

5.操作系统结构
1)传统结构
无结构
模块化结构
分层式结构

2)客户/服务器模式
3)面向对象设计
4)微内核结构
①.概念:
足够小的内核
基于客户/服务器模式
机制与策略分离原理应用
采用面向对象技术


②微内核功能(包括但不限于)
进程(线程)管理
低级存储器管理
中断和陷入控制(陷入就是出现异常)

****************************************************
2.进程
1)程序运行
①.前趋图
②.运行方式
a.顺序运行
特征
--顺序性
--封闭性
--可再现性


b.并发运行

特征
--间断性
--丢失封闭性
--不可再现性

2)进程概念
①.PCB(进程控制块)
a.描述进程的基本情况和活动过程
b.作用
--描述进程作为独立运行基本单位的标志(在线程出现之前)
--能让进程实现间断运行
--提供进程管理所需要的信息
--提供进程调度所需要的信息

--实现与其他进程的同步与通信


c.里面的信息
--进程标识符
--处理机状态
--用于进程从断点处重新执行
--进程调度信息

--进程控制信息


②.特征
动态性
并发性
独立性
异步性

③.状态
就绪
执行
阻塞
创建
终止

④.挂起:将进程从某一个状态挂起,放入外存。可利用激活操作激活

3)控制
①.处理机执行状态
系统态(管态,内核态):能执行所有指令和访问所有寄存器和存储区
用户态(目态):能执行部分规定的执行,访问指定的寄存器和内存。一般情况下,应用程序只能在用户态运行,不能执行OS指令和访问OS区域

②.OS内核两大功能(大部分内核都具备的)
a.支撑功能(提供给其他模块的一些基本功能)
--中断管理
--时钟管理
--原语管理

b.资源管理
--进程管理
--存储器管理
--设备管理

③.进程的创建
a.进程层次:允许一个进程创建另一个进程,子进程可以继承父进程的资源
注意:windows不存在层次概念,而是创建一个进程就拥有一个句柄,利用这个句柄可以控制进程
b.引起进程创建的事件
用户登录
作业调度
提供服务
应用请求

c.创建过程
申请空白PCB
为新进程分配资源
初始化PCB
如果新进程已就绪,放入就绪队列

d.进程终止
引用进程终止事件
--正常结束
--异常结束
----越界错
----保护错:进程访问一个不被允许的资源等时,抛出异常
----非法指令
----特权指令错:进程执行不被允许的指令
----运行超时
----等待超时
----算术运算错
----IO故障

--外界干预


终止过程
--根据进程标识符,得到PCB,获取进程状态
--终止执行此进程
--终止此进程的子孙进程,若有的话
--将进程的资源归还给父进程或OS
--将对应的PCB从队列(或链表)中移除,等待其他程序搜索信息

e.进程阻塞和唤醒
引起阻塞的事件
--向系统请求资源失败
--等待某种操作完成
--新数据尚未到达
--等待新任务的到达

阻塞过程:调用block原语,修改PCB现行状态为阻塞,并插入到阻塞队列


唤醒过程:有关进程调用wakeup原语,被阻塞进程从阻塞队列中移除,修改PCB现行状态为就绪,插入到就绪队列

f.进程挂起和激活
挂起过程:suspend原语
激活过程:active,从外存调到内存等等

4)进程同步
①.基本概念
a.两种制约关系
间接制约:共享系统资源导致

直接制约:进程相互合作导致


b.临界资源:进程间需采用互斥的方式共享的资源


c.临界区:访问临界资源的那段代码


d.同步进制应遵循的规则

空闲让进
忙则等待
有限等待
让权等待

②.硬件同步进制
关中断:进程在临界区执行代码,不响应中断
Test-and-Set指令实现互斥
Swap指令实现互斥

③.信号量
a.类型
整形型号量:wait(S),signal(S)两个操作,又称P、V操作。S是某资源个数
记录性信号量:不仅有资源数目的变量,还有所有等待进程的进程链
AND型信号量:多个信号量一次分配
信号量集:一次分配某个资源多个

b.应用
利用信号量实现进程互斥
利用信号量实现前驱

④.管程机制

a.概念:将共享资源抽象成共享数据结构,并提供一些对数据结构的操作。进程对资源的操作只能通过这些提供的操作,并且确保每次仅有一个进程进入管程,执行相关操作。实际上就是对资源进行抽象再封装


b.条件变量:管程有多个条件,每个条件对应一个进程被阻塞或挂起的原因。条件只能在管程中调用。其实就是用于解决进程阻塞或挂起时,不释放管程的情况。类似于java的锁对应的条件。操作有wait,signal

⑤.经典同步问题
a.生产者-消费者问题
利用记录型信号量解决
利用AND信号量解决

利用管程解决


b.哲学家进餐问题

利用AND信号量解决


c.读者-写者问题
利用记录型信号量解决
利用信号量集解决

5)进程通信
①类型
a.共享存储器系统

基于共享数据结构:OS提供共享存储器,程序员设计共享数据结构,仅适用于少量数据传递


基于共享存储区:内存划分出一个共享存储区,当进程需要通信时,从共享存储区申请一个区,对这个区进行数据读写。数据形式,位置或访问控制都由进程控制,非OS

b.管道通信

管道指一个读进程和写进程以实现它们之间通信的一个共享文件(个人认为一个内存区域也可以)


提供的协调能力
--互斥:一个时刻只能有一个读或写
--同步
--确定对方是否存在

c.消息传递系统:将通信数据封装在格式化信息为单位的信息中,利用OS提供的通信命令(原语),在进程间传递消息
分类
--直接通信:消息从一方直接到另一方;利用OS提供的通信原语直接将消息发送给目标进程

--间接通信:通过共享中间实体,如信箱通信


d.客户机-服务器系统
套接字(Socket)
--基于文件型:通信进程在同一台机器中,一个套接字关联一个特殊文件,通信双发通过对这个特殊文件读写实现通信


--基于网络型:一对套接字,类似于java的socket网络通信


远程过程调用(RPC),远程方法调用(RMC)
注:RPC引入存根的概念实现,java的rmi也是利用存根的概念实现

6)线程
①.进程只能运行在一个处理器上面。对于多线程的进程,可以将进程的多个线程运行在多个处理器上面
②.状态
执行
就绪
阻塞
③.TCB(线程控制块)
线程标识符
一组寄存器的内容(包括计数器PC,状态寄存器,通用寄存器)
线程运行状态
优先级
专有存储区
信号屏蔽
堆栈指针


④.多线程OS的进程
进程是一个拥有资源的基本单位
多个线程可并发运行
进程已不是可执行的实体

⑤.线程实现
a.实现方式
内核支持线程(KST)
用户级线程(ULT)
以上两种组合

b.具体实现

内核支持线程实现:一个进程里面有一个任务数据区,里面有若干个线程控制块TCB控件,每创建一个线程,就分配一个TCB


用户级线程的实现
--运行时系统
--内核控制线程(又称轻型线程(LWP))

c.线程创建与终止

*************************************************************
3.处理机调度与死锁
1)调度层次
高级调度(长程调度,作业调度)
低级调度(进程调度,短程调度)
中级调度(内存调度)

2)作业调度
①.作业与作业步
②.作业控制块
③.三个阶段
收容
运行
完成

④.三个状态
后备
运行
完成

⑤.调度算法
先来先服务算法
短作业优先算法
优先级调度算法
高响应比优先调度算法

3)进程调度
①.调度任务
保存处理机的现场信息
按某种算法选取进程
把处理机分配给进程

②.进程调度进制
排队器
分派器
上下文切换器

③.调度方式
非抢占式
抢占式

④.调度算法
轮转调度
优先级调度
多队列调度
多级反馈队列
基于公平原则调度
--保证调度
--公平分享调度

4)实时调度
①.算法分类
非抢占式
抢占式

②.算法
最早截止时间优先(EDF)
--非抢占式调度方式用于非周期实时任务
--抢占式调度方式用于周期实时任务

最低松弛度优先(LLF)


③.优先级倒置:解决方法

5)死锁
①.资源
可重用性资源和消耗性资源
可抢占型资源和不可抢占性资源

②.死锁原因
竞争不可抢占性资源引起死锁
竞争可消耗资源引起索索
进程推进顺序不当引起死锁

③.定义:一组进程发生死锁,这组死锁进程的每一个进程都在等待另一个死锁进程占用的资源

④.产生死锁的必要条件(缺一不可)
互斥条件
请求和保持条件
不可抢占条件
循环等待条件

⑤.处理死锁方法
a.预防死锁
破坏“请求和保持条件”
两种实现协议
--1.必须一次性申请整个运行过程中所有的资源

--2.只获得一开始运行所需资源,运行时释放全部资源,才能申请其他资源


破坏“不可抢占条件”:就是将资源释放给其他程序用

破坏“循环等待条件”
--实现方法:对所有资源进行线性排序,一开始申请资源后,接下来申请的资源必须大于拥有的资源序号才能被分配

b.避免死锁:使系统一直处于安全状态
方法:银行家算法

c.检测死锁
资源分配图
当一个资源分配图是不可完全简化的,此死锁资源分配图对应系统就发生死锁

d.解除死锁
终止进程
--终止所有死锁进程
--逐个终止进程

付出代价最小的死锁解除算法


***********************************************
4.存储器

4.1存储器结构
1)CPU寄存器
2)主存
①.高速缓存
②.主存储器
③.磁盘缓存
3).辅存
①.固定磁盘
②.可移动存储介质

4.2程序装入和链接
1)程序一般经过的步骤
编译
链接
装入
运行

2)程序装入
①.绝对装入方式:逻辑地址就是物理地址(适用于单道程序环境)
②.可重定位装入方式:装入时就进行地址变换(静态重定位)
③.动态运行时装入:地址变换推迟到运行时

3)程序链接
①.静态链接方式:1.对相对地址进行修;2.变换外部调用符号
②.动态链接
a.装入时:
优点:
--便于修改和更新

--便于实现对目标模块的共享

b.运行时

4.3连续分配存储管理方式
1)分配方式
单一连续分配
固定分区分配
动态分区分配

2)动态分配算法
①.基于顺序搜索
首次适应
循环首次适应
最佳适应
最坏适应

②.基于索引搜索
快速适应
伙伴系统
哈希算法

③.动态可重定位分区分配
紧凑
动态重定位
算法步骤

4.4对换
1)概念:将内存中不能运行的进程或者暂时不用的程序和数据换出到外存上,以便腾出足够的内存空间,再把已具备的运行条件的进程或进程所需的程序和数据换入内存
2)类型
整体对换
页面(分段)对换

3)对换空间的管理
对文件区管理
对对换空间的管理

4.5存储方式
1)离散分配方式
分页存储
分段存储
段页式存储

2)分页式存储管理
①.基本方式
a.页面和物理块
逻辑地址分成若干个页面,物理地址分成若干个段,页和块大小相等

分页地址的地址结构:页号+偏移量


b.页表


c.地址变换机构
基本地址变换机构
带有快表的地址变换机构

②.两级或多级页表

③.反置页表:不同于普通的页面(页号对应一个物理块,根据页号排序),反置页表用一个物理块对应一个页号(并带有所属进程的标识符),并根据物理块排序

3)分段存储管理
①.优点
方便编程
信息共享
信息保护
动态增长
动态链接

②.基本方式
a.分段

分段地址的地址结构:段号+段内地址


b.段表
c.地址变换机构:普通和加入联想存储器(同分页式地址变换机构)

4)分页和分段比较
①.页式信息的物理地址,段是信息的逻辑地址

.页的大小固定且有系统决定,段大小不固定,有用户编写的程序决定

③.分页地址一维,分页行为是系统决定,程序中只有一个逻辑地址。段是二维,段号加段内地址,程序员决定

5)段页式存储管理
先将程序分成若干段,再将每段分成若干页
地址结构:段号+段内页号+页内地址

************************************************
5.虚拟存储器
1)概念:具有请求调入和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。逻辑容量有内存和外存容量之和决定

2)特征
多次性
兑换性
虚拟性

3)实现方法
①.分页请求系统
a.硬件支持
请求页表机制
--页表项:页号+物理块号+状态位P+访问字段A+修改位M+外存地址
缺页中断机构
--在指令执行期间产生和处理中断
--一条指定在执行期间可能产生多次缺页中断
地址变换机构

b.内存分配
最小物理块数的确定
内存分配策略
--固定分配局部置换
--可变分配全局置换
--可变分配局部置换

c.物理块分配算法
平均分配算法
按比例分配算法
考虑优先权的分配算法

d.页面调入策略
何时调入
--预调入策略

--请求调页策略


从何处调入
--系统拥有足够的对换区空间,可全部从对换区调入
--系统缺少足够的对换区空间,但凡不会被修改的文件,直接从文件去调入

--UNIX方式。未运行过的从文件去调入,运行过的都跟对换区交互


页面调入过程

缺页率

e.页面置换算法
最佳置换算法(目前没法实现,只用来评价其他算法)
先进先出页面置换算法
最近醉酒未使用
最少使用
clock置换算法
页面缓冲算法

②.分段请求系统
a.硬件支持
请求段表机制:段名+段长+段基址+存储方式+访问字段A+修改位M+存在位P+增补位+外存始址
缺段中断机制
地址变换机构

b.分段的共享与保护
共享段表
共享段分配与回收
分段保护
--越界检查
--存储控制检查
--环保护机构

2)多道程序与抖动
①.工作集:某段时间间隔内,进程实际所要访问页面的集合
②.抖动预防方法
采取局部置换策略
把工作集算法融入到处理机调度中
利用L=S准则调节缺页率
--L为缺页之间的平均时间
--S为平均缺页服务时间
选择暂定的进程
原创粉丝点击