操作系统的概念
是管理计算机中软件和硬件资源,并以合理的方式组织调度计算机的工作和资源的分配,以提供给用户和其他软件的接口。
** 死锁**
是指多个进程竞争同一个资源而造成的一种僵局(互相等待),如果没有外力作用,这种局面无法打破。
死锁的必要条件
1.互斥条件。在某一段时间内一个资源只能被一个进程占用。
2.不剥夺条件:进程获得的资源在没有被使用完之前,不会主动释放
3.请求和保持:进程已经保持了几个资源,又提出新的资源请求,被拒绝,也继续持有现有的资源。(破坏的话就静态资源分配,一次申请完所有)
4.循环等待:存在一个进程资源的循环等待链。(破坏的话就顺序资源分配)
死锁的处理
1.死锁预防:破坏死锁产生的必要条件中的一个
2.死锁避免:银行家算法
3.死锁的检测和解除:在分配的时候不采取任何措施,通过资源分配图,利用死锁定理,来判断是否有死锁。 当资源分配图不可完全简化,就是死锁定理。 死锁解除:资源剥夺法和撤销进程法。
死锁和饥饿
死锁:多个进程因竞争资源而形成的一种僵局(互相等待对方的资源)
饥饿:一个进程等待其他进程释放资源
进程
**进程和线程的区别 **
(1)调度:线程是独立调度的基本单位,进程是资源拥有的基本单位 (2)并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,多个线程之间也可以并发执行
(3)系统开销:进程切换系统开销大,进程切换系统开销小
(4)线程不拥有资源,在同一个进程内,多个线程共享一个进程的资源,每个线程具有自己的线程栈,线程没有独立的线程地址空间,多个线程共享一个进程地址空间。
进程和程序的区别
进程:程序的一次执行过程,一个动态的过程。存在生命周期,包括进程的创建、进程运行、进程挂起、进程结束。
程序:代码+数据的一个集合,一个静态的表示
**作业和进程的区别 **
一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。 作业是用户需要计算机完成的某项任务,是要求计算机所做工作的集合
进程调度算法
(1)先来先服务
(2)短作业优先
(3)优先级调度算法
(4)高响应比
(5)时间片轮转
(6)多级反馈队列调度
内存管理
概念
操作系统对内存的划分和动态分配
程序的装入和链接
创建一个进程先要将程序和数据装入内存。需要编译,链接,和装入这三个过程。链接就是把编译后形成的目标模块与所需的库函数链接在一起。
其中链接的方式主要有三个:
1.静态链接
2.装入时动态链接
3.运行时动态链接
覆盖与交换
是在多道程序环境下扩充内存的方法
覆盖一般时在同一个程序或进程中,常用的程序放在固定区,其余按需要放在覆盖区。在需要时,将需要调入覆盖区。
交换一般是在不同进程中进行的。就是把处于等待状态的进程从内存移到辅存,把内存空间腾出来。
区别
1、交换主要是在进程和作业之间进行
2、覆盖主要在同一个进程或作业中进行
3、打破了一个程序一旦进入主存便一直运行到结束的限制
4、打破了必须将一个进程的全部信息装入主存后才能运行的限制
内存分配方式管理方法 1. 单一分配 2. 固定分配
连续分配
主要有三种方式: 单一连续分配、固定分区分配、动态分区分配
1.单一连续分配:内存分为系统区和用户区。内存中永远只有一道程序
2.固定分区:大小相等的分区和大小不等的分区
3.动态分配:
1)首次适应算法:空闲分区按地址递增形式,找到第一个满足要求的(最好,最快)
2)最佳适应算法:按空间大小递增形式
3)最坏适应算法:按空间大小递减
4)邻近适应算法(循环首次适应)
非连续分配
分页存储,分段存储,段页式存储(首先被分成逻辑段,每个段再分成页)。
分页和分段的区别:
1.页是信息的物理单位,是系统的需要;段则是信息的逻辑单位,是为了满足用户的需要
2.页的大小固定且有系统决定,而段长度可变,取决于用户编写的程序
3.分页的作业地址空间一维,单一线性地址空间;分段的作业地址空间是二维的,要给出段名和段内地址
24
局部性原理
时间局部性:某个指令一旦被访问,接下来一段时间可能会被再次访问
空间局部性:程序访问了某个内存单元,接下来可能就会再一次访问
虚拟存储器
系统提供了部分装入,请求调用,置换功能之后,系统好像为用户提供了一个比实际要大得多得内存。它得大小由计算机的地址空间决定。
它的实现有三种方式:请求分页,请求分段,请求段页式
请求分页:在基本分页的基础上增加了请求调页功能和页面置换功能。
只要将当前需要的一部分页面装入内存,之后需要时,再请求调用。还可以通过置换将暂时不用的换出,这就需要一定的硬件来支持:页表机制,缺页中断,地址变换机构(快表)。
页面置换算法
1.最佳置换算法(OPT):淘汰的页面是以后不再使用的,或者是在最长时间内不会被访问到的。
2.先进先出(FIFO):belady异常
3.最近最久未使用(LRU):最近最长时间没有访问的
4.时钟COLCK置换算法(又称最近未用算法(Not Recently Used))
页面分配策略
1.固定分配局部置换:一开始就固定好数目,然后页面置换
2.可变分配全局置换:为系统中每个进程预先分配一定的物理块,系统自身保持一定数目的空间物理块队列。
3.可变分配局部置换:预先分配一定量,系统自身保持,如果缺页频繁,就分配。
文件分配方式
1.连续分配 要求占连续的内存空间
2.链接分配:分为显示链接和隐式链接 隐式链接对应一个磁盘块的链表,目录里包含文件的第一块和最后一块的指针。显示链接:有一个文件分配表,每个物理块的号码都放在那个文件分配表里。
3.索引分配:把每个文件的所有的盘块号都集中在一起构成索引表。
文件存储空间管理
1.空闲表
2.空闲链表
3.位示图法
4.成组链接法,适合大型文件。把顺序的N个空闲扇区地址保存在第一个空闲扇区内,其后一个空闲扇区内则保存另一个顺序空闲扇区的地址。
磁盘调度
1.先来先服务
2.最短寻找时间优先
3.电梯算法(SCAN扫描算法)
4.循环扫描算法(一个给定方向不变)
I/O控制方式
1.程序直接控制:CPU一直测试读入了没有
2.中断方式:I/O结束给CPU发中断信号
3.DMA方式:DMA控制器来处理这些东西,一个数据块读好,才会发出中断。
4.通道控制方式:I/O是专门用来负责输入/输出的处理器。从一个数据块扩展为一组数据块。实现CPU,I/O设备 ,通道的并行。
SPOOLING技术
假脱机技术。有一个输入井和输出井。将独占设备改为共享设备。空间换时间。