软件工程笔记

本文探讨了操作系统中调度算法的重要性和应用,包括高响应比优先、时间片轮转法和多级反馈队列调度算法。同时,介绍了内存管理中的分页系统、地址变换以及分段系统的共享和保护机制。此外,还涉及死锁的概念和必要条件以及页表、物理块和页面大小的确定。
摘要由CSDN通过智能技术生成

6.为什么要引入高响应比优先调度算法?它有何优点?    
   答:.因为高响应比优先调度算法既考虑了作业的等待时间,又考虑了作业运行时间的调度算法,因此,既照顾了短作业,又不致使作业的等待时间过长,从而改变了处理机调度的性能。
8.在抢占调度方式中,抢占的原则是什么?
  答:优先权原则,即可以让优先级高的先用当前有进程的处理机。
      短进程优先原则,即允许让新到的短进抢占当前进程的处理机。新到达的进程比正在执行的进程的运行时间明显短。
      时间片原则,即各进程按时间片轮转运行时,当正在执行的进程的一个时间片用完后,便停止该进程的执行而重新进行调度。
11.何为静态和动态优先级?确定静态优先级的依据是什么?
  答:静态优先级是在创建进程确定的,在进程的整个运行期间保持不变,动态优先级是指在创建进程的初期,先赋予其一个优先级,然后其值随进程的推进或者时间的增加而改变,以便获得更好的调度性能。确定进程优先级大小的依据有三个:进程的类型,通常系统的优先级高于一般用户的优先级。进程对资源的需求,对进程要求少的进程赋予较高的优先级。用户要求,根据进程的紧迫程度以及用户所付的费用来确定优先级。
13.在时间片轮转法中,应如何确定时间片的大小?
  答:一个较为可取的时间片大小是略大于一次典型的交互所需要的时间,是大多数交互式进程能在一个时间片内完成,从而获得很小的响应时间。
15.为什么说多级反馈队列调度算法能较好地满足各方面用户的需要?
  答:因为多级反馈队列调度算法不用事先知道各种进程所需的进程时间,还可以更好的满足各种

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、 课程设计目的 本课程设计是学生学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。 二、课程设计的内容 1、分页方式的地址换算 2、分段方式的地址换算 3、段页式的地址换算 三、程序运行 1、 分页式地址转换: 数据: 逻辑地址:223、页面大小:23 2、 分段式地址转换 数据: 逻辑地址段号:223、段内地址:23 3、 段页式地址换算 逻辑地址的段号:2、页号:3 四、程序源代码 #include #include int page(int A,int L ); int Segment(int sn,int sl); int SegPagt(int sn,int pn,int pd); typedef struct segtable { int segf[256]; int segl[256]; }segtable; struct segtable st; typedef struct segpagt { int segf[256]; int segl[256]; int ptl[256]; int pt[256]; int pf[256]; int pl; }segpagt; struct segpagt sp; int main() { int code; int pl,pa,sn,sd,pd,pn; //const int ptl ; int temp; do{ printf("----------------地址换算过程----------------------------\n\n"); printf(" 1.分页式地址换算\n"); printf(" 2.分段式地址换算\n"); printf(" 3.段页式地址换算\n"); printf(" 4.结束运行\n\n"); printf("----------------------------------------------------------\n"); printf("请输入您的选择:"); scanf("%d",&code); switch(code) { case 1:{ printf("注意:请演示设定页表长度小于\n"); printf("请输入换算的逻辑地址:\n"); scanf("%d",&pa); printf("页面大小(B):\n"); scanf("%d",&pl); page(pa,pl); }break; case 2:{ printf("请演示设定段表长度小于\n"); printf("请输入逻辑地址的段号:\n"); scanf("%d",&sn); printf("段内地址:\n"); scanf("%d",&sd); Segment(sn,sd); }break; case 3:{ printf("预设定段表长为,页面大小为\n"); printf("请输入逻辑地址的段号:\n"); scanf("%d",&sn); printf("页号:\n"); scanf("%d",&pn); printf("页内地址:\n"); scanf("%d",&pd); SegPagt(sn,pn,pd); }break; case 4:{}break; } }while (code<4); } int page(int A,int L) { int d,P,kd,i; int WD; int PT[256]; for(i=1;iL) printf("页号大于页表长度,越界中断\n\n");//如果页号大于页表长度,输出越界中段 else { printf("页号=逻辑地址/页面大小=%d,页内地址=逻辑地址%页面大小=%d\n",P,d);//输出页号和页内地址 kd=PT[P];//根据页号随机产生快号 printf("根据页号%d得到块号%d\n",P,kd); WD=kd*L+d;//计算物理地址的公式 printf("物理地址=块号%d*页面大小%d+页内地址%d\n",kd,L,d);//输出物理地址=块号*页面大小+页内地址 printf("逻辑地址%d换算后的物理地址为%d\n\n",A,WD);//输出物理地址的结果 return (0); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值