当前位置:文档之家› 操作系统大作业

操作系统大作业

操作系统大作业
操作系统大作业

欢迎阅读操作系统大作业

Java语言实现

班级:08级计二班

姓名:湖南科技大学

作业一:生产者与消费者——多线程与同步问题

class MyThread {

int id;

MyThread(int id) {

this.id = id;

}

public String toString() {

return"线程" + id;

}

}

class MyStack {//数据栈类

int index = 0;

MyThread[] mt = new MyThread[5];

public synchronized void push(MyThread thread) {//线程进栈

if (index ==mt.length) {

try {

this.wait();// 线程等待

} catch (InterruptedException e) {

e.printStackTrace();

}

}

this.notify();//唤醒等待的单个线程

mt[index] = thread;

index++;

}

public synchronized MyThread pop() {//线程出栈

if (index==mt.length){

try {

this.wait();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

this.notify();//唤醒等待的单个线程

index--;

return mt[index];

}

}

class Producer implements Runnable {//生产者类,调用多线程接口MyStack ms = null;

Producer(MyStack ms) {//构造函数

this.ms = ms;

}

public void run() {

for (int i = 0; i <10; i++) {

MyThread mt = new MyThread(i);

ms.push(mt);

System.out.println(mt+"启动,开始生产。。。");

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

class Consumer implements Runnable {//消费者类,调用多线程接口

MyStack ms = null;

Consumer(MyStack ms) {//构造函数

this.ms = ms;

}

public void run(){

for (int i = 0; i < 10; i++) {

MyThread mt = ms.pop();

System.out.println(mt+"启动,开始消费。。。");

try {

Thread.sleep(1500);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

class MultiTread{

public static void main(String[] args) {//程序入口函数

MyStack ms = new MyStack();

Producer p = new Producer(ms);

Consumer c = new Consumer(ms);

new Thread(p).start();

new Thread(c).start();

}

}

运行结果截图:

作业二:多级反馈队列调度算法

//文件一:Operation.java

import java.util.*;

public class Operation {

//定义就绪队列数组

private List list1;

private List list2;

private List list3;

private ProcessPCB executing;

public Operation(){

list1 = new LinkedList();

list2= new LinkedList();

list3 = new LinkedList();

executing = null;

}

public void addToList1(ProcessPCB process){ list1.add(process);

}

public ProcessPCB removeFromList1(){

if(list1.size() <= 0)

return null;

return list1.remove(0);

}

public void addToList2(ProcessPCB process){ list2.add(process);

}

public ProcessPCB removeFromList2(){

if(list2.size() <= 0)

return null;

return list2.remove(0);

}

public void addToList3(ProcessPCB process){ list3.add(process);

}

public ProcessPCB removeFromList3(){

if(list3.size() <= 0)

return null;

return list3.remove(0);

}

public void setExecuting(ProcessPCB pcb){ this.executing = pcb;

}

//返回就绪队列

public List getList1(){

return this.list1;

}

public List getList2(){

return this.list2;

}

public List getList3(){

return this.list3;

}

public ProcessPCB getExecuting(){

return this.executing;

}

}

//文件二:ProcessPCB.java

import java.util.*;

public class ProcessPCB {

//private String pid; //进程标识符

private String pname;//进程名字

private int timepiece;//完成需要的时间片数

public ProcessPCB(String pname){

Random rand = new Random();//定义随机函数

this.pname = pname;

this.timepiece = 1 + rand.nextInt(9);

}

public void setPname(String pname){

this.pname = pname;

}

public String getPname(){

return this.pname;

}

public void setTimepiece(int timepiece){

this.timepiece = timepiece;

}

public int getTimepiece(){

return this.timepiece;

}

}

//文件三:UserFrame.java

import javax.swing.*;

import

import

public class UserFrame extends JFrame{

private static final long serialVersionUID = 1L;

JLabel pnamelabel = new JLabel("进程名:");

JTextField pnametext = new JTextField();

JLabel listlabel1 = new JLabel("正在执行的进程:");

JLabel listlabel2 = new JLabel("就绪队列1:");

JLabel listlabel3 = new JLabel("就绪队列2:");

JLabel listlabel4 = new JLabel("就绪队列3:");

JLabel listlabel5 = new JLabel("完成队列:");

JTextArea listarea1 = new JTextArea();

JTextArea listarea2 = new JTextArea();

JTextArea listarea3 = new JTextArea();

JTextArea listarea4 = new JTextArea();

JTextField executingarea = new JTextField();

JButton createbtn = new JButton("创建进程");

JButton dispatchbtn = new JButton("开始调度");

JButton reset = new JButton("清空");

Operation operation = new Operation(); //定义操作类String space = " ";//定义空格

public UserFrame(String st){

super(st);

JPanel p=new JPanel();

p.setLayout(null);

pnamelabel.setBounds(10,10,100,25);

pnametext.setBounds(10,45,100,25);

createbtn.setBounds(10,100,100,25);

dispatchbtn.setBounds(10,155,100,25);

reset.setBounds(10,210,100,25);

listlabel1.setBounds(140,45,100,25);

listlabel2.setBounds(140,115,100,25);

listlabel3.setBounds(140,185,100,25);

listlabel4.setBounds(140,255,100,25);

listlabel5.setBounds(140,325,100,25);

executingarea.setBounds(260,45,100,25);

listarea1.setBounds(260,115,100,50);

listarea2.setBounds(260,185,100,50);

listarea3.setBounds(260,255,100,50);

listarea4.setBounds(260,325,100,50);

p.add(pnamelabel);p.add(pnametext);p.add(createbtn);p.add(dispatchbtn) ;p.add(reset);

p.add(listlabel1);p.add(listlabel2);p.add(listlabel3);p.add(listlabel4 );p.add(listlabel5);

p.add(listarea1);p.add(listarea2);p.add(listarea3);p.add(listarea4);p. add(executingarea);

add(p);

//添加监听器

createbtn.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae){

createProcess();

}

});

dispatchbtn.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae){

DispatchThread dispatchThread = new DispatchThread();

dispatchThread.start();

}

});

reset.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae){reset();

}

});

}

//显示函数

public void print(JTextArea ja, List list){ ja.setText("");

//显示

for(int i = 0; i < list.size(); i++){

ProcessPCB pcb = list.get(i);

ja.append( pcb.getPname() + space + pcb.getTimepiece());

ja.append("\n");

}

}

//创建进程的函数

public void createProcess(){

ProcessPCB process;

if( pnametext.getText().equals("")){

JOptionPane.showMessageDialog(null, "请输入进程标识符和进程名");

}else{

process = new ProcessPCB( pnametext.getText());

operation.addToList1(process);

}

pnametext.setText("");

//显示list1

print(listarea1, operation.getList1());

}

public void dispatch(){

ProcessPCB pcb;

ProcessPCB executing = null;

while(operation.getList1().size() > 0){

pcb = operation.getList1().remove(0);

//显示更新

print(listarea1, operation.getList1());

operation.setExecuting(pcb);

executing = operation.getExecuting();

if(executing != null){

executingarea.setText( pcb.getPname() + space + pcb.getTimepiece());

}

try{

Thread.sleep(2000);

executingarea.setText("");

}catch(Exception e){

e.printStackTrace();

}

executing.setTimepiece(executing.getTimepiece() - 1);

//如果未完成,加入list2的末尾

if(executing.getTimepiece() > 0){

operation.addToList2(executing);

//显示更新

print(listarea2, operation.getList2());

}else{

listarea4.append(executing.getPname() + space + executing.getTimepiece());

listarea4.append("\n");

}

}

while(operation.getList2().size() > 0){

pcb = operation.getList2().remove(0);

//显示更新

print(listarea2, operation.getList2());

operation.setExecuting(pcb);

executing = operation.getExecuting();

if(executing != null){

executingarea.setText(pcb.getPname() + space + pcb.getTimepiece());

}

try{

Thread.sleep(4000);

executingarea.setText("");

}catch(Exception e){

e.printStackTrace();

}

executing.setTimepiece(executing.getTimepiece() - 1);

//如果未完成,加入list3的末尾

if(executing.getTimepiece() > 0){

operation.addToList3(executing);

//显示更新

print(listarea3, operation.getList3());

}else{

listarea4.append(executing.getPname() + space + executing.getTimepiece());

listarea4.append("\n");

}

}

while(operation.getList3().size() > 0){

pcb = operation.getList3().remove(0);

//显示更新

print(listarea3, operation.getList3());

operation.setExecuting(pcb);

executing = operation.getExecuting();

if(executing != null){

executingarea.setText(pcb.getPname() + space + pcb.getTimepiece());

}

try{

Thread.sleep(6000);

executingarea.setText("");

}catch(Exception e){

e.printStackTrace();

}

executing.setTimepiece(executing.getTimepiece() - 1);

//如果未完成,加入list2的末尾

if(executing.getTimepiece() > 0){

operation.addToList3(executing);

//显示更新

print(listarea3, operation.getList3());

}else{

listarea4.append(executing.getPname() + space + executing.getTimepiece());

listarea4.append("\n");

}

}

}

public void reset(){

listarea4.setText("");

}

public static void main(String args[]){

UserFrame uf = new UserFrame("多级反馈队列调度模拟");

uf.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent we){

System.exit(0);

}

});

uf.setSize(380,420);

uf.setVisible(true);

}

class DispatchThread extends Thread{

public void run(){

dispatch();

}

}

}

运行效果截图:

作业三:银行家算法

import java.util.*;

public class Bank {

public static void main(String[] args) {

int process;//定义进程数量

int resource=3;//定义资源种类是3

int[] available;//可利用的资源

int[][] max,allocation,need;//分别是最大的需求数、已分配的资源、需求资源Scanner scanner=new Scanner(System.in);

System.out.print("请输入进程数>>");

process=scanner.nextInt();

System.out.print("请输入可利用资源向量(已定义3个资源种类)>>");

available=new int[resource];

for (int i = 0; i < resource; i++) {

available[i]=scanner.nextInt();

}

System.out.println("请输入分配矩阵");

allocation=new int[process][resource];

for (int i = 0; i

System.out.print("请输入进程"+(i+1)+"已分配的资源数>>");

for (int j = 0; j < resource; j++) {

allocation[i][j]=scanner.nextInt();

}

}

System.out.println("请输入最大需求矩阵");

max=new int[process][resource];

for (int i = 0; i

System.out.print("请输入进程"+(i+1)+"最大需求的资源数>>");

for (int j = 0; j < resource; j++) {

max[i][j]=scanner.nextInt();

}

}

need=new int[process][resource];

for (int i = 0; i < process; i++) {

for (int j = 0; j < resource; j++) {

need[i][j]=max[i][j]-allocation[i][j];

}

}

System.out.println();

System.out.println("To时刻的资源分配表");

System.out.println(" 进程 max\t\tallocation\t

need\t\tavailable");

System.out.print("P0 ");

for (int i = 0; i

System.out.print(max[0][i]+" ");

}

System.out.print(" ");

for (int i = 0; i

System.out.print(allocation[0][i]+" ");

}

System.out.print(" ");

for (int i = 0; i

System.out.print(need[0][i]+" ");

}

System.out.print(" ");

for (int i = 0; i

System.out.print(available[i]+" ");

}

System.out.println();

for (int i = 1; i < process; i++) {

System.out.print("P"+i+" ");

for (int j = 0; j < resource; j++) {

System.out.print(max[i][j]+" ");

}

System.out.print(" ");

for (int j = 0; j < resource; j++) {

System.out.print(allocation[i][j]+" ");

}

System.out.print(" ");

for (int j = 0; j < resource; j++) {

System.out.print(need[i][j]+" ");

}

System.out.println();

}

int[] work=new int[3];//定义一个数组work用来存放可利用的资源数目

for (int i = 0; i < work.length; i++) {

work[i]=available[i];//初始化work

}

boolean[] finish=new boolean[process];//定义标志finish,表示分配资源的置为true,没有非配的置为false

for (int i = 0; i < process; i++) {

finish[i]=false;//初始化数组finish

}

int[] array=new int[process];//定义一个数组保存安全序列

int num=1;

int count1=1;

while(num

for (int i = 0; i < process; i++) {

for (int j = 0; j < 3; j++) {

if(finish[i]==false){

if(need[i][0]<=work[0]&&need[i][1]<=work[1]&&need[i][2]<=work[2]){

for (int j2 = 0; j2 < resource; j2++) {

work[j2]=work[j2]+allocation[i][j2];

}

finish[i]=true;

array[count1-1]=i;

count1++;

}

}

}

}num++;

}

int count=0;

for (int i = 0; i < array.length; i++) {

if(finish[i]==true){

count++;

}

}

if(count==process){

System.out.println("存在一个安全序列:");

for (int i = 0; i < array.length; i++) {

System.out.print("P"+array[i]+" ");

}

}

else{System.out.println("系统处于不安全状态!");}

System.out.println();

boolean flag=true;

while(flag){

int[] req=new int[resource];

System.out.print("请输入您要请求资源的编号>>");

int choose=scanner.nextInt();

System.out.print("请输入该进程的请求向量>>");

for (int i = 0; i < resource; i++) {

req[i]=scanner.nextInt();

}

if(req[0]<=need[choose][0]&&req[1]<=need[choose][1]&&req[2]<=need[c hoose][2]){

if(req[0]<=available[0]&&req[1]<=available[1]&&req[2]<=available[2] ){

for (int i = 0; i < resource; i++) {

available[i]=available[i]-req[i];

allocation[choose][i]=allocation[choose][i]+req[i];

need[choose][i]=need[choose][i]-req[i];

}

int[] work1=new int[3];

for (int i = 0; i < work1.length; i++) {

work1[i]=available[i];

}

boolean[] finish1=new boolean[process];

for (int i = 0; i < process; i++) {

finish1[i]=false;

}

int[] array1=new int[process];

int num1=1;

int count11=1;

while(num1

for (int i = 0; i < process; i++) {

for (int j = 0; j < 3; j++) {

if(finish1[i]==false){

if(need[i][0]<=work1[0]&&need[i][1]<=work1[1]&&need[i][2]<=work1[2]

){

for (int j2 = 0; j2 < resource; j2++) {

work1[j2]=work1[j2]+allocation[i][j2];

}

finish1[i]=true;

array1[count11-1]=i;

count11++;

}

}

}

}num1++;

}

int count2=0;

for (int i = 0; i < array1.length; i++) {

if(finish1[i]==true){

count2++;

}

}

if(count2==process){

System.out.println("存在一个安全序列:");

for (int i = 0; i < array1.length; i++) {

System.out.print("P"+array1[i]+" ");

}

}

else{System.out.println("系统处于不安全状态!

");flag=false;}

System.out.println();

}else{System.out.println("资源不够清等待!");}

}//if结束

else{System.out.println("请求资源已超过所需资源!");}

}//while结束

}

}

运行效果截图:

操作系统作业(1-4)答案

操作系统作业 (第一章—第四章) 一、单项选择 1 在计算机系统中配置操作系统的目的是【】。 A 增强计算机系统的功能 B 提高系统资源的利用率 C 合理组织工作流程以提高系统吞吐量 D 提高系统的运行速度 2 在操作系统中采用多道程序设计技术,能有效提高CPU、内存和I/O设备的【】。 A 灵活性 B 可靠性 C 兼容性 D 利用率 3 在操作系统中,并发性是指若干事件【】发生。 A 在同一时刻 B 一定不在同一时刻 C 在某一时间间隔内 D 依次在不同时间间隔内 4 以下不属于衡量操作系统性能指标的是【】。 A 作业的大小 B 资源利用率 C 吞吐量 D 周转时间 5 下列选项中,操作系统提供给应用程序的接口是【】。 A 系统调用 B 中断 C 函数 D 原语 6 在分时系统中,当用户数为50时,为了保证响应时间不超过1s,选取的时间片最大值为【】。 A 10ms B 20ms C 50ms D 100ms 7 假设就绪队列中有10个就绪进程,以时间片轮转方式进行进程调度,如果时间片为180ms,切换开销为20ms。如果将就绪进程增加到30个,则系统开销所占的比率为【】。 A 10% B 20% C 30% D 90% 8 中断系统一般由相应的【】组成。 A 硬件 B 软件 C 硬件和软件 D 固件 9 以下工作中,【】不是创建进程所必须的。 A 创建进程的PC B B 为进程分配内存 C 为进程分配CPU D 将PCB插入就绪队列 10 系统中有5个用户进程且CPU工作于用户态,则处于就绪状态或阻塞状态的进程数最多分别为【】。 A 5,4 B 4,0 C 0,5 D 4,5 11 如果系统中有n个进程,则就绪队列中进程的个数最多为【】。 A 1 B n-1 C n D n+1

《操作系统》练习题及参考答案

《操作系统》练习题及参考答案 一、单项选择题(每小题1分,共15分) 1.操作系统是一种() A.系统软件 B.系统硬件 C.应用软件 D.支援软件 2.MS—DOS的存贮管理采用了() A.段式存贮管理 B.段页式存贮管理 C.单用户连续存贮管理 D.固定式分区存贮管理 3.用户程序在目态下使用特权指令将引起的中断是属于() A.硬件故障中断 B.程序中断 C.外部中断 D.访管中断 4.MS—DOS中用于软盘整盘复制的命令是() https://www.doczj.com/doc/dc10912311.html,P B.DISKCOPY C.SYS D.BACKUP 5.位示图方法可用于() A.盘空间的管理 B.盘的驱动调度 C.文件目录的查找 D.页式虚拟存贮管理中的页面调度 6.下列算法中用于磁盘移臂调度的是() A.时间片轮转法 B.LRU算法 C.最短寻找时间优先算法 D.优先级高者优先算法 7.在以下存贮管理方案中,不适用于多道程序设计系统的是() A.单用户连续分配 B.固定式分区分配 C.可变式分区分配 D.页式存贮管理 8.已知,作业的周转时间=作业完成时间-作业的到达时间。现有三个同时到达的作业J1,J2和J3,它们的执行时间分别是T1,T2和T3,且T1 A.T1+T2+T3 B.(T1+T2+T3) C.T1+T2+T3 D. T1+T2+T3 9.任何两个并发进程之间() A.一定存在互斥关系 B.一定存在同步关系 C.一定彼此独立无关 D.可能存在同步或互斥关系 10.进程从运行状态进入就绪状态的原因可能是() A.被选中占有处理机 B.等待某一事件 C.等待的事件已发生 D.时间片用完

11.用磁带作为文件存贮介质时,文件只能组织成() A.顺序文件 B.链接文件 C.索引文件 D.目录文件 12.一作业8:00到达系统,估计运行时间为1小时,若10:00开始执行该作业,其响应比是() A.2 B.1 C.3 D.0.5 13.多道程序设计是指() A.在实时系统中并发运行多个程序 B.在分布系统中同一时刻运行多个程序 C.在一台处理机上同一时刻运行多个程序 D.在一台处理机上并发运行多个程序 14.文件系统采用多级目录结构后,对于不同用户的文件,其文件名() A.应该相同 B.应该不同 C.可以相同,也可以不同 D.受系统约束 15.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是() A.无上邻空闲区,也无下邻空闲区 B.有上邻空闲区,但无下邻空闲区 C.有下邻空闲区,但无上邻空闲区 D.有上邻空闲区,也有下邻空闲区 二、双项选择题(每小题2分,共16分) 1.能影响中断响应次序的技术是()和()。 A.时间片 B.中断 C.中断优先级 D.中断屏蔽 E.特权指令 2.文件的二级目录结构由()和()组成。 A.根目录 B.子目录 C.主文件目录 D.用户文件目录 E.当前目录 3.驱动调度算法中()和()算法可能会随时改变移动臂的运动方向。 A.电梯调度 B.先来先服务 C.扫描 D.单向扫描 E.最短寻找时间优先 4.有关设备管理概念的下列叙述中,()和()是不正确的。 A.通道是处理输入、输出的软件 B.所有外围设备的启动工作都由系统统一来做 C.来自通道的I/O中断事件由设备管理负责处理 D.编制好的通道程序是存放在主存贮器中的 E.由用户给出的设备编号是设备的绝对号

计算机操作系统作业一附答案

一、单选题 1、(D)不就是基本的操作系统。 A.批处理操作系统 B.分时操作系统 C.实时操作系统 D.网络操作系统 2、(A)不就是分时系统的基本特征: A.同时性 B.独立性 C.实时性 D.交互性 3、实时操作系统追求的目标就是(C )。 A.高吞吐率 B.充分利用内存 C.快速响应 D.减少系统开销 4、操作系统就是为了提高计算机的[1 B]与方便用户使用计算机而配置的基本软件。它负责管理计算机系统中的[2 C],其中包括[3 F],[4 A],外部设备与系统中的数据。操作系统中的[3 F]管理部分负责对进程进行管理。操作系统对系统中的数据进行管理的部分通常叫做[5 B]。 供选择的答案: [1] A.速度 B.利用率 C.灵活性 D.兼容性 [2] A.程序 B.功能 C.资源 D.进程 [3] [4] A.主存储器 B.虚拟存储器 C.运算器 D.控制器 E.微处理器 F.处理机 [5] A.数据库系统 B.文件系统 C.检索系统 D.数据库 E.数据存储系统 F.数据结构 G.数据库管理系统 5、批处理系统的主要缺点就是(B )。 A.CPU的利用率不高 B.失去了交互性 C.不具备并行性 D.以上都不就是 6、操作系统就是计算机系统的核心软件。按功能特征的不同,可把操作系统分为[1 B]、[2 E]、[3 C]、网络操作系统与分布式操作系统基本类型。其中[1 B]的主要目标就是提高系统的吞吐率与效率,而[2 E]就是一旦有处理请求与要求处理的数据时,CPU就应该立即处理该数据并将结果及时送回,例如[4 D]等。 供选择的答案: [1][2][3] A.单用户系统 B.批处理系统 C.分时系统 D.微机操作系统 E.实时系统 [4] A.计算机激光照排系统 B.办公自动化系统 C.计算机辅助设计系统 D.航空订票系统

操作系统复习题及答案

1操作系统概述自测题 1 选择题 1.以下_____操作系统中的技术是用“时间”来换取“空间”的。 A.虚拟存储器 B.缓冲技术 C.SPOOLing技术 D.快表 2.设计实时操作系统必须首先考虑系统的______。 A.效率 B.可移植性 C.可靠性 D.使用的方便性 3.一个作业第一次执行时用了5min,而第二次执行时用了6min,这说明了操作系统的______特点。 A.并发性 B.共享性 C.虚拟性 D.不确定性 4.下述操作系统类型中,哪个操作系统一定是由多台计算机组成的系统? A.实时 B.批处理 C.分时 D.分布式 5.操作系统中,以下______采用了以“空间”换“时间”的技术。 A.终端技术 B.缓冲技术 C.通道技术 D.虚拟存储技术 6.按照所起的作用和需要的运行环境,操作系统属于_______。 A.支撑软件 B.用户软件 C.应用软件 D.系统软件 7.操作系统的主要功能是存储器管理、设备管理、文件管理、用户接口和______。 A.进程管理 B.用户管理 C.信息管理 D.操作系统管理 8.操作系统的最基本的两个特征是资源共享和_______。 A.多道程序设计 B.程序的并发执行 C.中断 D.程序顺序执行

9.采用多道程序设计技术可以提高CPU和外部设备的______。 A.稳定性 B.可靠性 C.利用率 D.兼容性 10.在计算机系统中,操作系统是_______。 A.处于裸机之上的第一层软件 B.处于硬件之下的底层软件 C.处于应用软件之上的系统软件 D.处于系统软件之上的用户软件 11.操作系统是对_____进行管理的软件。 A.软件 B.硬件 C.计算机资源 D.程序 12.从用户的观点,操作系统是______。 A.用户与计算机之间的接口 B.控制和管理计算机资源的软件 C.合理地组织计算机工作流程的软件 D.是扩充裸机功能的软件,是比裸机功能更强、使用方便的虚拟机 13.操作系统的基本类型是_____。 A.批处理系统、分时系统和多任务系统 B.实时系统、分时系统和批处理系统 C.单用户系统、多用户系统和批处理系统 D.实时系统、分时系统和多用户系统 14.为了使系统中的所有用户都得到及时的响应,操作系统应该是___. A.实时系统 B.批处理系统 C.分时系统 D.网络系统 15.如果分时系统的时间片一定,那么____会使响应时间越长。 A.用户数越少 B.用户数越多 C.内存越少 D.内存越多

操作系统作业参考答案2

应用题参考答案 第二章 1、下列指令中哪些只能在核心态运行? (1)读时钟日期;(2)访管指令;(3)设时钟日期;(4)加载PSW;(5)置特殊 寄存器;(6) 改变存储器映象图;(7) 启动I/O指令。 答:(3),(4),(5),(6),(7)。 2、假设有一种低级调度算法是让“最近使用处理器较少的进程”运行,试解释这种算法对“I/O繁重”型作业有利,但并不是永远不受理“处理器繁重”型作业。 答:因为I/O繁忙型作业忙于I/O,所以它CPU用得少,按调度策略能优先执行。同样原因一个进程等待CPU足够久时,由于它是“最近使用处理器较少的进程”,就能被优先调度,故不会饥饿。 6、若有一组作业J1,…,Jn,其执行时间依次为S1,…,Sn。如果这些作业同时到达系统,并在一台单CPU处理器上按单道方式执行。试找出一种作业调度算法,使得平均作业周转时间最短。 答:首先,对n个作业按执行时间从小到大重新进行排序,则对n个作业:J1’,…,J n’,它们的运行时间满足:S1’≤S2’≤…≤S(n-1)’≤S n’。那么有: T=[S1’+( S1’+S2’)+ (S1’ + S2’+ S3’)+…+(S1’ + S2’+ S3’+…+ S n’)]/n =[n×S1’+( n-1)×S2’+ (n-3)×S3’]+…+ S n’]]/n =(S1’ + S2’+ S3’+…+ S n’)-[0×S1’+1×S2 ’+2×S3’+…+(n-1) S n’]/n 由于任何调度方式下,S1’ + S2’+ S3’+…+ S n’为一个确定的数,而当S1’≤S2’≤…≤S(n-1)’≤S n’时才有:0×S1’+1×S2 ’+2×S3’+…+(n-1) S n’的值最大,也就是说,此时T值最小。所以,按短作业优先调度算法调度时,使得平均作业周转时间最短。 10、有5个待运行的作业,预计其运行时间分别是:9、6、3、5和x,采用哪种运行次序可以使得平均响应时间最短? 答:按照最短作业优先的算法可以使平均响应时间最短。X取值不定,按照以下情况讨论: 1)x≤3 次序为:x,3,5,6,9 2)3

操作系统习题及答案

第一章引言 (一)单项选择题 1操作系统是计算机系统的一种( B )。A.应用软件B.系统软件c.通用软件D.工具软件 2.操作系统目的是提供一个供其他程序执行的良好环境,因此它必须使计算机(D ) A.使用方便B.高效工作 C.合理使用资源D.使用方便并高效工作 3.允许多个用户以交互方式使用计算机的操作系统是( A )。A.分时操作系统B.批处理单道系统C.实时操作系统D.批处理多道系统 4.下列系统中( C )是实时系统。A.计算机激光照排系统B.办公自动化系统 C.化学反应堆控制系统D.计算机辅助设计系统 5.操作系统是一种系统软件,它( D )。A.控制程序的执行B.管理计算机系统的资源C.方便用户使用计算机D.管理计算机系统的资源和控制程序的执行 6.计算机系统把进行( C )和控制程序执行的功能集中组成一种软件,称为操作系统A.CPU管理B.作业管理C.资源管理D.设备管理 7.批处理操作系统提高了计算机系统的工作效率,但( D )。 A.不能自动选择作业执行B.无法协调资源分配c.不能缩短作业执行时间D在作业执行时用户不能直接干预8.分时操作系统适用于( B)。A.控制生产流水线B.调试运行程序c.大量的数据处理D.多个计算机资源共享 9.在混合型操作系统中,“前台”作业往往是指( C )。A.由批量单道系统控制的作业B.由批量多道系统控制的作业c.由分时系统控制的作业D.由实时系统控制的作业 10.在批处理兼分时的系统中,对( B)应该及时响应,使用户满意。A.批量作业B.前台作业c.后台作业D.网络通信 11.实时操作系统对可靠性和安全性要求极高,它( C )。A.十分注重系统资源的利用率B.不强调响应速度c.不强求系统资源的利用率D.不必向用户反馈信息 12.分布式操作系统与网络操作系统本质上的不同之处在于( D )。A.实现各台计算机之间的通信B.共享网络个的资源c.满足较大规模的应用D.系统中若干台计算机相互协作完成同一任务 13.SPOOL技术用于( B)。A.存储管理B.设备管理C.文件管理D.作业管理14.( B )为用户分配主存空间,保护主存中的程序和数据不被破坏,提高主存空间的利用率。A处理器管理B.存储管理c.文件管理D.作业管理 (二)填空题 1. 计算机系统是按用户要求接收和存储信息,自动进行_数据处理____并输出结果信息的系统。 2.计算机是由硬件系统和_软件系统______系统组成。3.软件系统由各种_程序______和数据组成。4.计算机系统把进行_资源管理______和控制程序执行的功能集中组成一种软件称为操作系统。5.操作系统使用户合理_共享资源_____,防止各用户间相互干扰。6.使计算机系统使用方便和_高效工作______是操作系统的两个主要设计目标。7.批处理操作系统、分时操作系统_______和实时操作系统是基本的操作系统。8.用户要求计算机系统中进行处理的一个计算机问题称为__作业_____。9.批处理操作系统按照预先写好的_作业说明书______控制作业的执行。10.在多道操作系统控制下,允许多个作业同时装入_内存______,使中央处理器轮流地执行各个作业。11.批处理操作系统提高了计算机系统的_工作效率______,但在作业执行时用户不能直接干预作业的执行。12.在分时系统中,每个终端用户每次可以使用一个由_时间片______规定的cPu时间。13分时系统具有同时性、独立性、及时性和__交互性_____等特点。14.在批处理兼分时系统中,往往把由分时系统控

操作系统复习题及参考答案1-4

中南大学网络教育课程考试复习题及参考答案 操作系统1 一、判断题: 1.资源共享是现代操作系统的一个基本特征。() 2.信号量机制中,P、V操作必须成对出现。() 3.若进程资源分配图中含有环,则一定有进程处于死锁状态。() 4.绝对装入方式需要对内存地址进行重定位。() 5.“分页对换”和“分段对换”是为了支持虚拟存储系统。() 6.通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的。() 7.程序的并行执行是现代操作系统的一个基本特征。() 8.一个进程被唤醒意味着重新占有了CPU。() 9.进程在运行过程中,请问和释放资源顺序不当,同样可以引起死锁。() 10.分段存储管理的引入是为了满足用户(程序员)在编程和使用上多方面的要求。() 11.系统中的各个部件,如CPU、存储设备等的连接都是由总线设备来实现的。() 12.在文件的索引存取方法中,允许随意存取文件中的一个记录。() 13.程序在并发执行时会失去封闭性。() 14.由于用户的响应时间要求,因此要求设置大的时间片长度。() 15.预防死锁是指在资源动态分配过程中,用某种方法去防止系统进入不安全状态。() 16.内存的单一连续分配模式只能用在单用户、单任务的OS中。() 17.虚拟存储器的“虚拟”是指用户可使用的内存容量比实际的内存容量大的多。() 18.在文件系统支持下,用户也需知道文件存放的物理地址。() 19.在单CPU环境下可以实现“多道程序系统”。() 20.程序与进程最主要的区别在于程序是静态实体,而进程是动态实体。() 21.死锁与程序的死循环一样。() 22.内存固定分区分配模式只能用在单用户、单任务的OS中。() 23.采用LRU置换算法时,当驻留集增大时,页故障率一定不会增加。() 24.通道与CPU共享内存。() 二、填空题: 1.操作系统的基本任务是( )。 2.从资源分配的角度看,P(wait)操作意味着向系统( )一个资源,V(signal)操作意味着( )一个资 源。 3.一个批处理型作业,从进入系统并驻留在外存的后备队列上开始,直至作业运行完毕,可能要经历下 述三级调度()、()、()。 4.产生死锁的四个必要条件是()、()、()和()。 5.()称之为“页内碎片”。 6.文件按其用途可分为:用户文件、()和()。 7.分时系统的四个主要特征是()、()、()、()。 8.进程调度分为以下两种方式()、()。 9.死锁的必要条件之一是“互斥”,该条件是指()。 10.根据链接时间的不同,可把链接分为()、()、()三种。 11.I/O控制方式主要分为()、()、()。 12.直接存储器DMA方式是专对()设备进行I/O控制的。 13.多道批处理系统的优缺点主要有()、()、()。 14.程序的并发执行的特征有()、()、()。 15.调度队列模型分为()、()、()。 16.程序的装入分为()、()、()。 17.缓冲区可工作在()、()、()和提取输出四种工作方式下。

操作系统作业参考答案及其知识点

操作系统作业参考答案及其知识点 第一章 思考题: 10、试叙述系统调用与过程调用的主要区别? 答: (一)、调用形式不同 (二)、被调用代码的位置不同 (三)、提供方式不同 (四)、调用的实现不同 提示:每个都需要进一步解释,否则不是完全答案 13、为什么对作业进程批处理可以提高系统效率? 答:批处理时提交程序、数据和作业说明书,由系统操作员把作业按照调度策略,整理为一批,按照作业说明书来运行程序,没有用户与计算机系统的交互;采用多道程序设计,可以使CPU和外设并行工作,当一个运行完毕时系统自动装载下一个作业,减少操作员人工干预时间,提高了系统的效率。 18、什么是实时操作系统?叙述实时操作系统的分类。 答:实时操作系统(Real Time Operating System)指当外界事件或数据产生时,能接收并以足够快的速度予以处理,处理的结果又能在规定时间内来控制监控的生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。 有三种典型的实时系统: 1、过程控制系统(生产过程控制) 2、信息查询系统(情报检索) 3、事务处理系统(银行业务) 19、分时系统中,什么是响应时间?它与哪些因素有关? 答:响应时间是用户提交的请求后得到系统响应的时间(系统运行或者运行完毕)。它与计算机CPU的处理速度、用户的多少、时间片的长短有关系。 应用题: 1、有一台计算机,具有1MB内存,操作系统占用200KB,每个用户进程占用200KB。如果用户进程等待I/0的时间为80%,若增加1MB内存,则CPU的利用率提高多少? 答:CPU的利用率=1-P n,其中P为程序等待I/O操作的时间占其运行时间的比例1MB内存时,系统中存放4道程序,CPU的利用率=1-(0.8)4=59% 2MB内存时,系统中存放9道程序,CPU的利用率=1-(0.8)9=87% 所以系统CPU的利用率提高了28% 2、一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A先开始做,程序B后开始运行。程序A的运行轨迹为:计算50ms,打印100ms,再计算50ms,打印100ms,结束。程序B的运行轨迹为:计算50ms,输入80ms,再计算100ms,结束。

操作系统练习题_及答案解析

操作系统练习题 第一章引言 (一单项选择题 1操作系统是计算机系统的一种( 。A.应用软件 B.系统软件c.通用软件D.工具软件 2.操作系统目的是提供一个供其他程序执行的良好环境,因此它必须使计算机( A.使用方便 B.高效工作 C.合理使用资源 D.使用方便并高效工作 3.允许多个用户以交互方式使用计算机的操作系统是( 。A.分时操作系统 B.批处理单道系统 C.实时操作系统 D.批处理多道系统 4.下列系统中( 是实时系统。A.计算机激光照排系统 B.办公自动化系统 C.化学反应堆控制系统 D.计算机辅助设计系统 5.操作系统是一种系统软件,它( 。A.控制程序的执行 B.管理计算机系统的资源 C.方便用户使用计算机 D.管理计算机系统的资源和控制程序的执行 6.计算机系统把进行( 和控制程序执行的功能集中组成一种软件,称为操作系统 A.CPU管理 B.作业管理 C.资源管理 D.设备管理 7.批处理操作系统提高了计算机系统的工作效率,但( 。 A.不能自动选择作业执行 B.无法协调资源分配 c.不能缩短作业执行时间 D在作业执行时用户不能直接干预 8.分时操作系统适用于( 。A.控制生产流水线B.调试运行程序c.大量的数据处理D.多个计算机资源共享 9.在混合型操作系统中,“前台”作业往往是指( 。A.由批量单道系统控制的作业 B.由批量多道系统控制的作业 c.由分时系统控制的作业D.由实时系统控制的作业

10.在批处理兼分时的系统中,对( 应该及时响应,使用户满意。A.批量作业B.前台作业c.后台作业D.网络通信 11.实时操作系统对可靠性和安全性要求极高,它( 。A.十分注重系统资源的利用率B.不强调响应速度 c.不强求系统资源的利用率 D.不必向用户反馈信息 12.分布式操作系统与网络操作系统本质上的不同之处在于( 。A.实现各台计算机之间的通信B.共享网络个的资源 c.满足较大规模的应用 D.系统中若干台计算机相互协作完成同一任务 13.SPOOL技术用于( 。A.存储管理B.设备管理C.文件管理 D.作业管理 14.( 为用户分配主存空间,保护主存中的程序和数据不被破坏,提高主存空间的利用率。 A处理器管理 B.存储管理 c.文件管理 D.作业管理 (二填空题 1. 计算机系统是按用户要求接收和存储信息,自动进行_______并输出结果信息的系统。 2.计算机是由硬件系统和_______系统组成。 3.软件系统由各种_______和数据组成。 4.计算机系统把进行_______和控制程序执行的功能集中组成一种软件称为操作系统。 5.操作系统使用户合理_______,防止各用户间相互干扰。 6.使计算机系统使用方便和_______是操作系统的两个主要设计目标。 7.批处理操作系统、_______和实时操作系统是基本的操作系统。 8.用户要求计算机系统中进行处理的一个计算机问题称为_______。

计算机操作系统作业及答案

作业2 1.若1页大小为4KB,计算机地址总线为32位,则页号共有多少位?逻辑地址 空间最多包含多少页?逻辑地址60000在第几页?页内偏移是多少?若该页被装进物理块1280中,则物理地址是多少? 解:所以页内偏移即页内地址占 12 位页号占 32-12=20 位逻辑地址空间最大页数为页 60000=(EA60)16=(1110 1010 0110 0000)2 其中低 12 二进制位为页内偏移,即(A60)16=2656。高 4 二进制位为页号,即(E)16=14。物理块号1280=(500)16 物理地址=(500A60)16=5245536. 2.假定当前磁头位于100号磁道,进程对磁道的请求序列依次为57,61,39, 20,88,161,139,38,175。当采用先来先服务和最短寻道时间优先算法时,总的移动的磁道数分别是多少?(请给出寻道次序和每步移动磁道数) 解:先来先服务最短寻道时间优先 43 +4+ 22+ 19+ 68+ 73+ 22+ 101 + 137 = 489 12 + 27 + 4 +18 + 1+ 18 + 119 + 22 + 14 = 235 。 3.设系统中有三种类型的资源(A,B,C)和五个进程(P1,P2,P3,P4,P5), A资源的数量17,B资源的数量为5,C资源的数量为20。在T0时刻系统状态如下表所示。系统采用银行家算法来避免死锁。请回答下列问题: (1)T0时刻是否为安全状态?若是,请给出安全序列。 (2)若进程P4请求资源(2,0,1),能否实现资源分配?为什么? (3)在(2)的基础上,若进程P1请求资源(0,2,0),能否实现资源分配?为什么? 进程最大资源需求量已分配资源量系统剩余资源数量 A B C A B C A B C P1559212233 P2536402 P3******* P4425204

操作系统复习题含答案

一、什么是操作系统?你都用过什么操作系统?各有什么特点? 操作系统是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务。DOS系统都是以命令的方式运行指令,有的也支持鼠标,甚至也可以做成菜单方式,但跟windows的亲和性相比是无法相比的。windos系列的操作系统主要特点就是简单,图形操作,不需要死记命令,适合非专业人士使用。unix系列由于是开源的,所以操作复杂,功能强大,可以按自己的需求设计与改造,适合专业人士,不适合初学者。 二、试说明操作系统系统的主要功能模块及其主要任务? 处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度; 进程管理:为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换。 进程同步:为多个进程(含线程)的运行进行协调。 进程通信:用来实现在相互合作的进程之间的信息交换。 处理机调度: (1)作业调度。从后备队里按照一定的算法,选出若干个作业,为他们分配运行所需 的资源(首选是分配内存)。 (2)进程调度:从进程的就绪队列中,按照一定算法选出一个进程,把处理机分配给 它,并设置运行现场,使进程投入执行。 内存管理的主要功能有:内存分配、内存保护、地址映射和内存扩充。 内存分配:为每道程序分配内存。 内存保护:确保每道用户程序都只在自己的内存空间运行,彼此互不干扰。 地址映射:将地址空间的逻辑地址转换为内存空间与对应的物理地址。 内存扩充:用于实现请求调用功能,置换功能等。 设备管理主要功能有: 缓冲管理、设备分配和设备处理以及虚拟设备等。 主要任务: 完成用户提出的I/O 请求,为用户分配I/O 设备;提高CPU 和I/O 设 备的利用率;提高I/O速度;以及方便用户使用I/O设备. 文件管理的主要功能是文件存储空间的管理,目录管理,文件的读写管理和文件的共享与保护。主要任务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。 三、什么是多道程序设计技术?试叙述多道程序运行的特征。 所谓多道程序设计指的是允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法。也就是说,计算机内存中可以同时存放多道(两个以上相互独立的)程序,它们都处于开始和结束之间。从宏观上看是并行的,多道程序都处于运行中,并且都没有运行结束;从微观上看是串行的,各道程序轮流使用CPU,交替执行。多道程序技术运行的特征:多道、宏观上并行、微观上串行。 四、在一个分时操作系统中,用户提交了一个作业,作业的内容包括:①请求内存(memory);

操作系统作业题及答案

《操作系统》课程作业 (2013年春) 姓名: 学号: 专业: 年级: 学校: 日期:

作业一:作业管理 1、有三道程序A、B、C在一个系统中运行,该系统有输入、输出设备各1台。三道程序 A、B、C构成如下: A:输入32秒,计算8秒,输出5秒 B:输入21秒,计算14秒,输出35秒 C:输入12秒,计算32秒,输出15秒 问:(1)三道程序顺序执行的总时间是多少? (2)充分发挥各设备的效能,并行执行上述三道程序,最短需多少时间(不计系统开销)?并给出相应的示意图。 2、假设一个单CPU系统,以单道方式处理一个作业流,作业流中有2道作业,共占用CPU 计算时间、输入卡片数和打印输出行数如下: 其中,卡片输入机速度为1000张/分钟,打印机输出速度为1000行/分钟,试计算:(1)不采用spooling技术,计算这两道作业的总运行时间(从第1道作业输入开始到最后一个作业输出完毕)。 (2)如采用spooling技术,计算这2道作业的总运行时间(不计读/写盘时间),并给出相应的示意图。

作业二:进程管理 1、 请写出两程序S1和S2可并发执行的Bernstein 条件。 2、 有以下5条语句,请画出这5条语句的前趋图。 S1:y=x+1 R(x) W(y) S2:c=f-w R(f,w) W(c) S3:d=r-y R(r,y) W(d) S4:x=a+b R(a,b) W(x) S5:r=c+y R(c,y) W(r) 3、 设在教材第62页3.6.4节中所描述的生产者消费者问题中,其缓冲部分为m 个长度相等 的有界缓冲区组成,且每次传输数据长度等于有界缓冲区长度以及生产者和消费者可对缓冲区同时操作。重新描述发送过程deposit(data)和接收过程remove(data)。 P P P i P .. .. 1 2 i k 4、 设有k 个进程共享一临界区,对于下述情况,请说明信号量的初值、含义,并用P ,V 操作写出有关互斥算法。 (1) 一次只允许一个进程进入临界区; (2) 一次允许m (m

操作系统大题总结解答

处理机的执行模式与执行状态 大多数处理器都至少支持两种执行模式,一种是同操作系统有关的模式,另一种则是同用户程序有关的模式。较低特权的模式称为用户模式。较高特权的模式称系统模式、控制模式或内核模式。 内核模式能执行所有的指令,访问所有的内存; 用户模式则只能执行有限的指令,访问规定的内存 处理器往往有一个或多个寄存器来保存处理器模式信息——程序状态字(PSW ) 为了防止操作系统及其关键数据(如PCB )遭到用户程序有意或无意的破坏,通常将处理机的执行状态分为两种:核心态与用户态 核心态又称管态、系统态,是操作系统管理程序执行时机器所处的状态。 它具有较高的特权,能执行一切指令,能访问所有的寄存器和存储区。 用户态又称目态,是用户程序执行时机器所处的状态。 它具有较低的特权,只能执行规定的指令和只能访问指定的寄存器和存储区。 信号量练习2.某电话亭每一时刻最多只能容纳一个人打电话。来打电话的人,如果看到电话亭空闲,则直接进入电话亭打电话;如果看到电话亭里正有人在打电话,则在外面排队等候,直到轮到自己,再进入电话亭打电话。请用信号量来表达打电话的进程对电话机的互斥使用逻辑。 该电话亭每次只能容纳一个人打电话(进程)使用,所以是一个临界资源,资源量为1,各进程要互斥使用。 用信号量来表达资源的数量: semaphore mutex=1;(或empty=1) main( ) { Cobegin Pi ( );//(i=1,2,3,4,……); Coend } 练习3.某电话亭共有3台电话机,即能容纳3个人(3个进程)同时打电话。来打电话的人,如果看到电话亭有空闲机子,则直接进入电话亭打电话;如果看到电话亭人满,则在外面排队等候,直到轮到自己再进入电话亭打电话。请用信号量机制表达打电话的进程对电话机资源的使用限制。 用信号量来表达空闲的电话机数: 资源量的初值为3(表示开始时有3台空机子可用) semaphore empty=3; main ( ) { Cobegin Pi ( ); i=1,2,3,…… Coend } 4.生产者-消费者问题 一个说明空缓冲单元的数目,用empty 表示,其初值为有界缓冲区的大小n ,另一个说明满缓冲单元的数目,用full 表示,其初值为0。而有界缓冲区是一个临界资源,必须互斥使用,因此还需要另外设置一个互斥信号量mutex ,其初值为1。semaphore full=0; //第一步:定义信号量, semaphore empty=n; //并为信号量赋初值 semaphore mutex=1; main( ) // 第二步:编写主函数, { cobegin //在其中调用各个进程 produceri ( ); //i=1,2,…m P i( ) // i=1,2,3…… { P(mutex); 打电话; ……… 打完电话 走出电话亭 V(mutex); } Pi ( ) i=1,2,3,… { P(empty); 打电话; 打电话完毕 出电话亭 V(empty); }

计算机操作系统习题及答案()

第3章处理机调度1)选择题 (1)在分时操作系统中,进程调度经常采用_D_ 算法。 A. 先来先服务 B. 最高优先权 C. 随机 D. 时间片轮转 (2)_B__ 优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变。 A. 作业 B. 静态 C. 动态 D. 资源 (3)__A___ 是作业存在的惟一标志。 A. 作业控制块 B. 作业名 C. 进程控制块 D. 进程名 (4)设有四个作业同时到达,每个作业的执行时间均为2小时,它们在一台处理器上按单道方式运行,则平均周转时间为_ B_ 。 A. l小时 B. 5小时 C. 2.5小时 D. 8小时 (5)现有3个同时到达的作业J1、J2和J3,它们的执行时间分别是T1、T2和T3,且T1<T2<T3。系统按单道方式运行且采用短作业优先算法,则平均周转时间是_C_ 。 A. T1+T2+T3 B. (T1+T2+T3)/3 C. (3T1+2T2+T3)/3 D. (T1+2T2+3T3)/3 (6)__D__ 是指从作业提交给系统到作业完成的时间间隔。 A. 运行时间 B. 响应时间 C. 等待时间 D. 周转时间 (7)下述作业调度算法中,_ C_调度算法与作业的估计运行时间有关。 A. 先来先服务 B. 多级队列 C. 短作业优先 D. 时间片轮转 2)填空题 (1)进程的调度方式有两种,一种是抢占(剥夺)式,另一种是非抢占(非剥夺)式。 (2)在_FCFS_ 调度算法中,按照进程进入就绪队列的先后次序来分配处理机。 (3)采用时间片轮转法时,时间片过大,就会使轮转法转化为FCFS_ 调度算法。 (4)一个作业可以分成若干顺序处理的加工步骤,每个加工步骤称为一个_作业步_ 。 (5)作业生存期共经历四个状态,它们是提交、后备、运行和完成。 (6)既考虑作业等待时间,又考虑作业执行时间的调度算法是_高响应比优先____ 。 3)解答题 (1)单道批处理系统中有4个作业,其有关情况如表3-9所示。在采用响应比高者优先调度算法时分别计算其平均周转时间T和平均带权周转时间W。(运行时间为小时,按十进制计算) 表3-9 作业的提交时间和运行时间

最新操作系统试题及答案

1、简述操作系统的基本特征。 答:(1)并发。在单处理机、多道程序环境下并发是指一段时间内,宏观上多个程序同时运行、微观上交替运行的情形。OS中引入进程的概念就是为了实现并发;(2)共享。是指系统中并发执行的多个进程共享系统资源。根据资源属性可以有互斥共享和同时访问两种方式;(3)虚拟。OS会通过虚拟技术实现系统功能的扩充。(4)异步性。并发执行的多个进程由于资源的限制会出现“走走停停”的运行模式 2、试分析引起进程阻塞和唤醒的事件主要有哪些。 答:(1)请求系统服务。当正在执行的进程请求系统提供服务而系统无法满足其请求时,进程阻塞等待;由释放服务的进程唤醒阻塞进程。(2)启动某种操作。当进程启动某种I/O操作后阻塞以等待操作完成;由中断处理程序唤醒阻塞进程。(3)新数据尚未到达。相互合作的进程中,消费者进程阻塞等待数据到达;生产者进程在数据到达后唤醒阻塞进程。(4)无新工作可做。系统进程没有新工作可做时阻塞等待;当有进程发出请求时唤醒阻塞进程。 3、简述在操作系统中引入缓冲的主要原因。 答:(1)缓和CPU与I/O设备间速度不匹配的矛盾。(2)减少对CPU的中断频率,放宽对中断响应时间的限制。(3)提高CPU和I/O设备之间的并行性。 4、以独占设备为例简述设备分配的过程。(1)设备的分配(2)控制器的分配。(3)通道的分配。只有在三者都分配成功时,设备分配才算成功。 5 常用的死锁解除策略有:剥夺资源;撤消进程。 (1)虚拟存储器:由进程中的目标代码、数据等的虚拟地址组成的虚拟空间称为虚拟存储器。也可解释为仅把作业的一部分装入内存便可运行作业的存储器系统;具体地说是指具有调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。 (2)死锁:指各并发进程彼此互相等待对方所拥有的资源,而且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源。从而造成大家都想的到资源而又的不到资源,各并发进程不能继续向前推进的状态。 (1)段页式管理这种存储管理方式中为什么要设置高速联想寄存器? 因为如果不采用高速联想寄存器,段页式的地址转换需要访问内存的次数将达三次以上,这将使cpu执行指令的速度大大降低,所以必须要设置高速联想寄存器,存放当前最常用的段号、页号和对应的内存页面与其它控制栏目,达到大大提高地址转换的目的。 (2)进程和程序有什么区别和联系? 进程是一个动态概念,而程序是一个静态概念,程序是指令的有序集合,无执行含义, 进程则强调执行的过程。进程具有并行特征,程序没有。进程是竞争计算机系统资源 的基本单位。不同的进程可以包含同一个程序,同一程序也可产生多个进程。 (3)什么是系统调用?简述系统调用的实现过程。 系统调用是操作系统提供给编程人员的唯一接口。编程人员利用系统调用,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。 实现过程:用户在程序中使用系统调用,给出系统调用名和函数后,即产生一条相应的陷入指

操作系统作业答案

习题一 1、举例说明为什么对并发执行的程序不加控制会产生与执行时间有关的错误? 解:程序在并发执行时由于资源是共享的,而且常常资源数少于程序对这些资源的需求数,致使这些并发执行的程序之间因为竞争资源导致存在间接制约关系,这种间接制约使得并发执行的程序具有随机性(异步性),即“执行—暂停—执行”,它们何时启动、何时停止是未知的。例如:飞机售票系统、堆栈的存数与取数过程等(示例说明略)。 2、程序并发执行为什么会失去顺序执行时的封闭性和可再现性? 解:所谓“封闭性”是指程序执行得到的最终结果由给定的初始条件决定,不受外界因素的影响。在程序并发执行时由于资源共享,导致这些资源的状态将由多个程序来改变,又由于存在程序执行的随机性,所以程序的运行失去封闭性。由于失去了封闭性,也将导致其失去可再现性。即虽然它们执行时的环境和初始条件相同,但得到的结果却可能各不相同。 习题二 1、试用加锁的方法解决飞机售票系统的问题。 例:民航售票系统,n个售票处 2、用机器指令(testAndset)解决飞机售票系统中任一进程的算法。

习题三 1、进程在做P、V操作时对自己和其他进程有何影响? 进程在信号量上执行P操作后,若信号量的值为正,当前进程继续执行;若信号量的值为负,当前进程变为等待状态、放弃处理机,其它进程则有机会获得CPU。 进程在信号量上执行V操作后,不会对自己有任何影响,但当信号量的值不大于0时,需要唤醒在该信号量上所对应的等待队列中的进程。 2、设课程的前驱、后继关系如下,若每修一门课程看作进程Px(x∈1..6)试用P、V操作算法描述这种前驱与后继关系。 答: Semaphore:S1:=S2:=S3:=S4:=S5:=S6:=0; Begin Cobegin P1、P2、P3、P4、P5、P6 coend; end. P1()P2()P3() Begin begin begin 修计算机导论;P(S1);P(S2); V(S1);修高级语言程序设计修计算机组成原理; V(S2);V(S3)V(S4); End; End; End; P4()P5()P6() Begin begin begin P(S3);P(S4);P(S5); 修数据结构;修86汇编语言;P(S6); V(S5);V(S6);修操作系统; End; End; End; 习题四 1、有三个进程R、W1、W2,进程R 从输入设备上读数据送缓冲区B,若是奇数由W1 进程从B 取数输出;若

操作系统考试题答案

一、选择题(每空1 分,共20分) 1.操作系统是一组(C )。 A. 文件管理程序 B.中断处理程序 C.资源管理程序 D.设备管理程序 2.CPU状态分为管态和目态,从目态转换到管态的唯一途径是(C )。 A. 运行进程修改程序状态字 B. 中断屏蔽 C. 系统调用 D. 进程调度程序 3.为了描述进程的动态变化过程,采用了一个与进程相联系的(C )数据结构,根据它而感知进 程的存在。 A.进程状态字 B. 进程优先数 C.进程控制块 D. 进程起始地址 4.一个进程被唤醒意味着(B )。 A. 该进程重新占有了CPU B.进程状态变为就绪 C. 它的优先权变为最大 D.其PCB移至就绪队列的队首 5.进程间的同步与互斥,分别表示了各进程间的(B )。 A. 调度关系与同步算法 B.协调与竞争 C.不同状态 D. 动态性与独立性 6.系统出现死锁的原因是(C )。 A. 计算机系统发生了重大故障 B. 有多个封锁的进程同时存在 C. 若干进程因竞争资源而无休止地等待着,不释放已占有的资源 D. 资源数大大少于进程数,或进程同时申请的资源数大大超过资源总数 7.进程P1使用资源情况:申请资源S1,申请资源S2,释放资源S1;进程P2使用资源情况:申请 资源S2,申请资源S1,释放资源S2,系统并发执行进程P1,P2,系统将(B )。 A. 必定产生死锁 B.可能产生死锁 C.不会产生死锁 D.以上说法都不对 8.破坏死锁的四个必要条件之一就可以预防死锁。若规定一个进程请求新资源之前首先释放已经占 有的资源,则是破坏了(B )条件。 A. 互斥使用 B. 部分分配 C.不可剥夺 D. 环路等待 9.采用段式存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许段内位移的最大 长度是()。 A. 224 B.. 216 C.. 28 D.. 232 10.以下存储管理技术中,支持虚拟存储器的技术是(C)。 A. 动态分区法B.可重定位分区法C.请求分页技术D.对换技术 11.碎片现象的存在使得(A)。 A. 内存空间利用率降低 B. 内存空间利用率提高 C. 内存空间利用率得以改善 D. 内存空间利用率不影响 12.在(A )中,不可能产生系统抖动的现象。 A. 固定分区管理 B.请求页式管理 C.段式管理 D.机器中不存在病毒时 13.一个作业8:00到达系统,估计运行时间1小时。若10:00开始执行该程序,其相应比为(C )。 A.1 B.2 C.3 D.0.5 14.逻辑文件是(B )的文件组织形式。 A. 在外部设备上 B.从用户观点看 C.虚拟存储 D.目录 15.数据库文件的逻辑结构形式是(C )。 A. 字符流式文件 B. 档案文件 C.记录式文件 D.只读文件 16.文件系统为每个文件另建立一张指示逻辑记录和物理记录之间的对应关系表,由此表和文件本身 构成的文件是(D )。 A. 连续文件 B.串连文件 C.索引文件 D.逻辑文件

相关主题
文本预览
相关文档 最新文档