操作系统(四)

栈,程序文件结构与进程空间结构

可执行目标程序平时存放在外存,在执行时调入内存,不运行时不在内存。在外存中存放时,可执行目标程序主要由3个部分组成:1)代码 2)静态初始化数据 3)头:包括连接数据,参数,日期,厂商,等等

进程空间结构:

简单地说,进程映像(image, map)是指该进程在内存的所有代码、数据(静态和动态)、栈以及有关信息的组合和总称。用户可以将进程信息完整地保存到一个文件中,成为转储文件(Windows下是dump,linux 下是core文件)。

栈是一种数据结构,其特征是先进先出。每个用户程序都有两个栈,一个用户态栈在用户区,另一个系统态栈,在系统区。

 

可抢先,不可抢先,完全可抢先

可抢先:是指当前进程在其时间片未用完时就可被更高优先级的进程抢用CPU。而自己进入就绪态。不可抢夺是指除非自愿或者时间片到,当前进程不可以被其它进程抢占CPU。完全可抢先是指在任何情况下,不管进程处于用户态还是和心态,都可以被优先级比自己高的进程抢占CPU。抢用通常是由于进程切换得到的。按照是否可以抢先的及其程度,所有多任务操作系统分为以下4类。

(1)完全不可抢先或用户态不可抢先:当前进程无论在用户态或核心态都不可以被抢用CPU,这种操作系统成为不可抢先式操作系统。

(2)内核完全不可抢先:当前进程在用户态可以随时被抢用CPU,但当前进程在核心态则完全不可被抢用CPU。例如,传统的UNIX和windows 。这些操作系统的内核代码在执行时,除非自愿或者时间片到,否则不会调用调度程序。而且,这些操作系统通常在系统调用或中断时屏蔽中断,在系统调用返回时开放中断。

(3)内核的部分可抢先:当前进程在用户态可以完全被抢用CPU,但当前进程在核心态的时候大部分时间都不可以被抢用CPU。

 (4) 完全可抢先或内核完全可抢先:也就是说,无论当前进程是处于用户态还是处于和心态,都可以随时被抢用CPU。

进程调度算法

衡量进程调度算法的标准有:CPU利用率,用户响应时间,吞吐量,公平和理性,设备利用率等。常用的CPU调度算法:

1)先来先服务(FCFS):在所有就绪的进程中,最先进入就绪态的进程最先被服务。

2)轮转调度算法(RR):系统赋予每个进程一段时间,允许运行一个时间片。若时间片结束,该进程还在运行,则被强制撤出。CPU交给另一个进程。

3)短作业有限(SJF):该算法最先执行占用CPU时间最短的进程。最短的进程第一个执行总是产生最小的平均响应时间。采用过去的数据为依据估计出平均响应时间。

4)优先级调度。

5)最高相应比优先:该算法最先执行相应比最高的进程。响应比公式为:1+等待时间/估计运行时间。

6)最短剩余时间优先:

7)多级队列法:算法有多个队列,同一队列中的优先级相同,不同的队列中的优先级不同。最高优先级上的进程运行1个时间片,第二优先级上的进程运行2个时间片,第三个优先级上的进程运行3个时间片。以此类推,每当一个进程在一个由县级队列中运行完它的时间片之后,就下移一级,进入另一个队列。

该算法的基本思想和特点分析如下:1)不同进程的时间片不同。RR算法中时间片对每个进程先通。但实际上不同进程对时间片的长度要求是不同的。I/O频繁的进程通常用不完时间片,因时间片可以安排的少一些。2)进程采用动态的优先级,经常进入等待状态的进程优先级会逐渐升高。计算量大的进程,优先级就会逐渐降低,获得更长的CPU时间。

8)策略驱动法:该算法基于对各个用户的承诺,如果一个用户在工作时有n个用户注册,则该用户可以获得1/n的CPU权利。

9)最晚时间限调度:

10)二级调度法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值