文档库 最新最全的文档下载
当前位置:文档库 › 山东大学操作系统OS作业1-5

山东大学操作系统OS作业1-5

山东大学操作系统OS作业1-5
山东大学操作系统OS作业1-5

操作系统作业 1-5章

软件5班张** 201200301311

第一章

1.1

a.个人的程序或者数据可能遭到窃取

多人同时使用时可能造成cpu拥堵

b.不能。所有保护机制都有可能被外人破译,所以共用系统一定没有单独使用系统安全。

1.10

(1)现代操作系统是由中断驱动的,中断可以改变对系统的控制权。中断可以使一些需要立即响应的进程及时得到处理,并且不影响原进程的运行。

(2)陷阱即为异常,是一种软件中断,源于出错。而中断不一定是出错,可能是来自I/O的一个命令,可能为硬件中断。

(3)用户可以有意生成陷阱。目的是为了避免一个进程的错误影响到很多进程,如死循环发生时就可以通过陷阱避免影响。

1.12

操作系统需要在任何时刻都可被控制,故可以构建的安全的操作系统为:

所有用户程序通过软件实现。

所有的程序都有高级编程语言编写,以便所有目标代码都被编译出来

1.17

a.批处理:具有相似需求的作业被成批的集合起来,并把它们作为一个整体通过一个操作员或自动作业程序装置运行通过计算机。通过缓冲区,线下操作,后台和多道程序,运用尝试保持 CPU 和 I/O 一直繁忙,从而使得性能被提高。批处理系统对于运行那些需要较少互动的大型作业十分适用。它们可以被更迟地提交或获得。

b.交互式:这种系统由许多短期交易构成,并且下一个交易的结果是无法预知的。从用户提交到等待结果的响应时间应该是比较短的,通常为 1 秒左右。

c.分时:分时系统中,CPU通过在作业之间的切换来执行多个作业,但是由于切换的频率很高,用户可以在程序运行期间与之进行交互。

d.实时:系统能够在限定的时间内提供用户要求的服务。

e.网络:提供给操作系统一个特征,使得其进入网络,比如文件共享。

f.并行:有多个紧密通信的CPU,它们共享计算机总线,有时还有时钟,内存,外设等。

g.分布:这种系统在几个物理处理器中分布式计算,处理器不共享内存或时钟。每个处理器都有它各自的本地存储器。它们通过各种通信线路在进行通信,比如:一条高速的总线或一个本地的网络。

h.集群:集群系统是由两个或多个独立的系统耦合起来的,将多个CPU集中起来完成计算任务。集群通常用来提供高可用性服务,即使

集群中的一个或多个系统出错,服务仍然继续。

i.手持:方便性与便携性极强。但但物理内存与处理器速度都十分受限,而因缺乏物理空间对I/O也有一定限制。

第二章

2.1

(1)一组操作系统服务提供对用户很有用的函数

(2)另一组服务确保系统本身高效运行

第一组服务是针对用户,解决用户需求。而第二组服务不是以帮助用户为目的

2.3

a.通过寄存器来传递参数

b.参数存放在内存的块或表中,并将块的地址通过寄存器来传递

c.通过程序放在或压入堆栈中,并通过操作系统弹出

2.4

(1)操作系统提供程序的时间表,以表示一个程序在某个位置或某些位置执行所花的时间。时间表要求具有跟踪功能或定时时间中断,在每次出现定时中断时,会记录程序计数器的值。如果有足够频繁的时间中断,就可得到程序各部分所用时间的统计。

(2)获得时间简表有助于调试程序,发现程序陷阱。

2.12

(1)优点:便于扩充操作系统,使操作系统容易从一种硬件平台设计移植到另一种硬件平台设计,提供了更好的安全性和可靠性

(2)用户程序和系统服务通过进程间通信机制进行交互,通信以信息传递形式提供。

(3)缺点:微内核必须忍受由于系统功能总开销的增加而导致系统性能的下降

2.14

(1)虚拟机可以在并行运行几个不同的执行环境(操作系统)时能够共享相同的硬件

(2)a.可以通过共享小型磁盘来共享文件,这种方案模拟了共享物理磁盘,但通过软件实现 b.可以定义一个虚拟机的网络,使每台虚拟机通过虚拟通信网络来传递消息

第三章

3.1

a.长期:从大容量存储设备的缓冲池中选择进程,并装入内存以准备执行。执行的不频繁,控制多道程序设计的程度(内存中进程数量)。

只有当进程离开系统后,才可能调用长期调度程序。由于每次执行时间较长,长期调度程序能使用更多时间来选择执行进程

b.中期:核心思想是能将进程从内存或从cpu竞争中移出,从而降低多道程序设计的程度。

c.短期:从准备执行的进程中选择进程,并为之分配cpu。必需频繁的为cpu选择新进程,由于每次执行时间较短,短期调度程序必需快。

3.2

发生上下文切换时,内核会将旧进程的状态保存在其PCB中,然后装入经调度要执行的并已经保存的新进程的上下文。

3.4

当控制回到父进程时,它的值会保持在5,而子进程将更新并拷贝这个值。

3.5

a.对称和非对称通信:对称通信的影响是它允许发送者和接收者之间有一个集合点。缺点是阻塞发送时,不需要集合点,而消息不能异步传递。因此,消息传递系统,往往提供两种形式的同步。

b.自动和显式缓冲:自动缓冲提供了一个无限长度的队列,从而保证了发送者在复制消息时不会遇到阻塞,如何提供自动缓存的规范,一个方案也许能保存足够大的内存,但许多内存被浪费缓存明确指定缓

冲区的大小。在这种状况下,发送者不能在等待可用空间队列中被阻塞。然而,缓冲明确的内存不太可能被浪费。

c.复制发送和引用发送:复制发送不允许接收者改变参数的状态,引用发送是允许的。引用发送允许的优点之一是它允许程序员写一个分布式版本的一个集中的应用程序。Java’s RMI 公司提供两种发送,但引用传递一个参数需要声明这个参数是一个远程对象。

d.固定大小和可变大小消息:涉及的太多是有关缓冲问题,带有定长信息,一个拥有具体规模的缓冲课容纳已知数量的信息缓冲能容纳的可变信息数量是未知的。考虑Windows 2000如何处理这种情况。带有定长信息(<256bytes),信息从发送者的地址空间被复制至接受进程的地址空间。更大的信息(如变长信息)使用共享内存传递信息。

第四章

4.1

多线程会使程序的执行速度降低,但是会减少用户的响应时间

多线程比单线程效率低的例子:

计算某个学生成绩的程序

空壳程序

4.2

用户线程之间的上下文切换和内核线程之间的相互转换非常相似。但

它依赖于线程库和怎样把用户线程指给内核程序。一般来说,用户线程之间的上下文切换涉及到用一个用户程序的轻量级进程(L和用另外一个线程来代替。这种行为通常涉及到寄存器的节约和释放。

4.4

共享堆内存和全局变量

第五章

5.1

操作系统响应I/O请求的速度很慢,所以cpu约束程序执行时间要比I/O约束程序短很多。如果不加以区别,那么调度算法的效率将受到很大影响,使调度程序执行效率变低。另外,如果加以区分,cpu和I/O设备的利用率也将得到提高。

5.2

a.响应时间是从提交请求到产生第一响应的时间。如果单方面要求响应时间提高,就需要cpu及时响应请求,即cpu应该处于相对空闲的状态。故cpu使用率高和响应时间短一定程度上是矛盾的。

b.周转时间是从进程提交到进程完成,包括等待进入内存、在就绪队列中等待、在cpu上执行和I/O执行。如果要满足最大等待时间,就不能得到平均周转时间,即产生了矛盾。

c.I/O的使用是由中断产生的,需要不断地进行上下文切换,这对cpu 的使用率产生一定影响,故当I/O使用率很高时cpu使用率不可能很高,反之也成立。

5.4

(1)FCFS p1 p2 p3 p4 p5

0 10 11 13 14 19

周转时间:p1.10 p2.11 p3.13 p4.14 p5.19

等待时间:p1.0 p2.10 p3.11 p4.13 p5.14

(2)SJF

(抢占) p1 p2 p4 p3 p5 p1

0 0 1 2 4 9 19

周转时间:p1.17 p2.1 p3.4 p4.2 p5.9

等待时间:p1.9 p2.0 p3.2 p4.1 p5.4

(3)非抢占优先级 p1 p2 p5 p3 p4

0 10 11 16 18 19

周转时间:p1.10 p2.11 p3.18 p4.19 p5.16

等待时间:p1.0 p2.10 p3.16 p4.18 p5.11

(4)RR p1 p2 p3 p4 p5 p1 p3 p5 p1 p5 p1p5 p1 p5 p1

周转时间:p1.19 p2.2 p3.7 p4.4 p5.14

等待时间:p1.9 p2.1 p3.5 p4.3 p5.9

d.平均等待时间最短的是抢占式的SJF

5.5

短作业优先和优先级会导致饥饿

5.10

a. FCFS:区别短任务是因为任何在长任务后到达的短任务都将会有很长的等待时间。

b. RR:对所有的任务都是能够相同的(给它们相同的CPU时间区间),所以,短任务可以很快的离开系统,只要它们可以先完成。

c.多级反馈队列和RR调度算法相似:它们不会先选择短任务。

山东大学操作系统实验五理发师问题报告

计算机科学与技术学院操作系统实验报告 实验题目:理发店问题 理发店问题:假设理发店的理发室中有3个理发椅子和3个理发师,有一个可容纳4个顾客坐等理发的沙发。此外还有一间等候室,可容纳13位顾客等候进入理发室。顾客如果发现理发店中顾客已满(超过20人),就不进入理发店。 在理发店内,理发师一旦有空就为坐在沙发上等待时间最长的顾客理发,同时空出的沙发让在等候室中等待时间最长的的顾客就坐。顾客理完发后,可向任何一位理发师付款。但理发店只有一本现金登记册,在任一时刻只能记录一个顾客的付款。理发师在没有顾客的时候就坐在理发椅子上睡眠。理发师的时间就用在理发、收款、睡眠上。 请利用linux系统提供的IPC进程通信机制实验并实现理发店问题的一个解法。 实验目的: 进一步研究和实践操作系统中关于并发进程同步与互斥操作的一些经典问题的解法,加深对于非对称性互斥问题有关概念的理解。观察和体验非对称性互斥问题的并发控制方法。进一步了解Linux系统中IPC进程同步工具的用法,训练解决对该类问题的实际编程、调试和分析问题的能力。 硬件环境: Inter(R)Core(TM)i5-3210M CPU @ 2.50GHz 内存:4GB 硬盘:500G 软件环境: XUbuntu-Linux 操作系统 Gnome 桌面 2.18.3 BASH_VERSION='3.2.33(1)-release gcc version 4.1.2

gedit 2.18.2 OpenOffice 2.3 实验步骤: 1、问题分析: 为了解决本实验的同步问题,采用共享内存,信号量,消 息队列三种IPC 同步对象处理。 客户程序思想: 每一个客户把自己的请求当做一条消息发送到相应的消息 队列中去,并通过阻塞等待接收消息的方式来等待理发师 最终帮自己理发。每一个客户先判断sofa 是不是坐满了,如 果没有就坐在沙发上等,否者就判断waitroom 是不是坐满 了,如果没有,就坐在waitroom 等,只要有一个坐在sofa 的客户离开sofa 理发,理发师就会到waitroom 找最先来的 客户,让他进入sofa 等待。 理发师程序思想: 理发师查看sofa 上有没有人,没有就睡3 秒,然后再一次 看有没有人,如果有人,就到沙发请最先来的客户来理发。 账本互斥的实现: Semaphore mutex=1 ; Sofa 队列的长度和wait 队列的长度的实现: 在顾客进程中设置两个变量sofa_count,wait_count,分别保存沙发

山东大学操作系统实验报告4进程同步实验

山东大学操作系统实验报告4进程同步实验

计算机科学与技术学院实验报告 实验题目:实验四、进程同步实验学号: 日期:20120409 班级:计基地12 姓名: 实验目的: 加深对并发协作进程同步与互斥概念的理解,观察和体验并发进程同步与互斥 操作的效果,分析与研究经典进程同步与互斥问题的实际解决方案。了解 Linux 系统中 IPC 进程同步工具的用法,练习并发协作进程的同步与互斥操作的编程与调试技术。 实验内容: 抽烟者问题。假设一个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽烟。抽烟者卷起并抽掉一颗烟需要有三种材料:烟草、纸和胶水。一个抽烟者有烟草,一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在卷起并抽掉一颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这一过程重复进行。请用以上介绍的 IPC 同步机制编程,实现该问题要求的功能。 硬件环境: 处理器:Intel? Core?i3-2350M CPU @ 2.30GHz ×4 图形:Intel? Sandybridge Mobile x86/MMX/SSE2 内存:4G 操作系统:32位 磁盘:20.1 GB 软件环境: ubuntu13.04 实验步骤: (1)新建定义了producer和consumer共用的IPC函数原型和变量的ipc.h文件。

(2)新建ipc.c文件,编写producer和consumer 共用的IPC的具体相应函数。 (3)新建Producer文件,首先定义producer 的一些行为,利用系统调用,建立共享内存区域,设定其长度并获取共享内存的首地址。然后设定生产者互斥与同步的信号灯,并为他们设置相应的初值。当有生产者进程在运行而其他生产者请求时,相应的信号灯就会阻止他,当共享内存区域已满时,信号等也会提示生产者不能再往共享内存中放入内容。 (4)新建Consumer文件,定义consumer的一些行为,利用系统调用来创建共享内存区域,并设定他的长度并获取共享内存的首地址。然后设定消费者互斥与同步的信号灯,并为他们设置相应的初值。当有消费进程在运行而其他消费者请求时,相应的信号灯就会阻止它,当共享内存区域已空时,信号等也会提示生产者不能再从共享内存中取出相应的内容。 运行的消费者应该与相应的生产者对应起来,只有这样运行结果才会正确。

2019年山大计算机应用基础章节检测答案

第一章绪论 1. [多选题] 阿兰?麦席森?图灵(Alan Mathison Turing)对计算机科学的发展做出了巨大贡献,下列说法正确的是() A.图灵是著名的数学家、逻辑学家、密码学家,被称为计算机科学之父。 B.图灵最早提出关于机器思维的问题,被称为人工智能之父。 C.“图灵奖”是为奖励那些对计算机科学研究与推动计算机技术发展有卓越贡献的杰出科学家而设立的。 D.图灵创立了数理逻辑学。 E.图灵发明了二进制。 F.图灵设计了第一台电子计算机。 正确答案:ABCD 2. [多选题] 在人体器官中,下列说法不正确的是() A.大脑的思维是对外部事物的直接反应。 B.大脑是一种直接感觉器官。 C.人体器官可分为直接感觉器官和间接感觉器官。 D.大脑具有记忆和思维功能。 E.大脑是一种间接感觉器官。 F.大脑是人体的思维器官。 正确答案:AB 3. [多选题] 对于计算思维,下列说法错误的是() A.计算思维是计算机科学家独有的思维方式。 B.计算思维是一种借助于计算能力进行问题求解的思维和意识。 C.计算思维的产生与信息社会发展的时代背景有关,工具影响我们的思维方式。 D.计算思维的本质是抽象和自动化。 E.计算思维并不是继逻辑思维和形象思维以后的人类思维的第三种形态。 正确答案:A 4. [多选题] 关于推理,下列说法正确的是() A.推理是由已知判断,根据一定的思维规则导出一个或一组新的判断的过程。 B.推理是逻辑思维的重要形式。

C.三段论是一种演绎推理形式。 D.归纳推理比演绎推理更具有说服力。 E.所有可能的假言推理都是逻辑正确的。 正确答案:ABC 5. [多选题] 对于计算思维,下列说法正确的是() A.计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。 B.计算思维的本质是抽象和自动化。 C.计算思维是一种这种借助于计算能力进行问题求解的思维和意识。 D.计算思维的产生于信息社会发展的时代背景有关,工具影响我们的思维方式。 E.计算思维是计算机科学家的思维。 F.计算思维是计算机相关从业人员的思维方式。 正确答案:ABCD 6. [多选题] 关于信息技术(Information Technology,IT)下列说法正确的是()A.广义而言,能充分利用与扩展人类信息器官功能的各种方法、工具与技术都可称为信息技术。 B.现代信息技术是指以微电子技术、计算机技术和通信技术为特征的技术。 C.信息技术就是计算机技术和计算机网络技术。 D.在信息社会,所有的信息处理中都用到了信息技术。 E.在信息处理的每一个环节,都必须使用信息技术。 F.信息技术无法对工业社会形成的传统设备进行技术改造,成为智能设备。 正确答案:AB 7. [多选题] 关于思维,下列说法正确的是() A.思维是人类的大脑对外部客观世界概括的和间接的反应。 B.思维是人类凭借知识、经验对客观事物进行的间接的应。 C.思维是在表象、概念的基础上进行分析、综合、判断、推理等认识活动的过程。 D.思维是大脑活动,与工具无关。 E.思维是人类与生俱来的,与后天的学习无关。 正确答案:ABC 8. [多选题] 下列内容属于信息素养(Information Literacy)的是()

山大操作系统实验2

操作系统实验报告 ——线程和进/线程管道通信实验 张咪软件四班一、实验要求 设有二元函数f(x,y) = f(x) + f(y) 其中: f(x) = f(x-1) * x (x >1) f(x)=1 (x=1) f(y) = f(y-1) + f(y-2) (y> 2) f(y)=1 (y=1,2) 请编程建立3个并发协作进程,它们分别完成f(x,y)、f(x)、f(y) 。 二、实验目的 通过 Linux 系统中线程和管道通信机制的实验,加深对于线程控制和管道通信概念的理解,观察和体验并发进/线程间的通信和协作的效果 ,练习利用无名管道进行进/线程间通信的编程和调试技术。 三、实验环境 实验环境均为Linux操作系统,开发工具为gcc和g++。 四、实验思路 要实现三个函数,要创建三个进程,两个子进程和一个父进程。一个子进程实现f(x),另一个实现f(y)。因为f(x,y)=f(x)+f(y),所以在父进程和子进程间建立通信,子进程将当前值传给父进程,父进程进行计算。而且由于父进程的f(x,y)中的x和f(x)中的x一一对应,所以这些进程应该同步的并发向前走,否则f(x,y)的值就是错的。 五、算法设计 1.创建进程,每个子进程的执行代码段实现对应函数功能。 2.建立父进程和子进程间的通信。由于管道的读写默认的通信方式为同步读写方式,即如果管道读端无数据则读命令阻塞直到数据到达,反之如果管道写端有数据则写命令阻塞直到数据被读走。所以同步并发的问题可以通过管道实现。建立两个管道,pipe1和pipe2,f(x)通过pipe1向父进程写入f(x)的值。同理f(y)通过pipe2向父进程写入f(y)的值。父进程根据这两个值实现函数f(x,y)功能。 六、实验过程: 新建一个文件夹,在该文件夹中建立以下名为ppipe.c的C语言程序。 编写代码,保存。 输入gcc ppipe.c命令, 生成默认的可执行文件a.out。 执行a.out:。 执行并调试ppipe程序。

计算机操作系统实验四

实验三进程与线程 问题: 进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位,具有动态性、并发性、独立性、异步性和交互性。然而程序是静态的,并且进程与程序的组成不同,进程=程序+数据+PCB,进程的存在是暂时的,程序的存在是永久的;一个程序可以对应多个进程,一个进程可以包含多个程序。当操作系统引入线程的概念后,进程是操作系统独立分配资源的单位,线程成为系统调度的单位,与同一个进程中的其他线程共享程序空间。 本次实验主要的目的是: (1)理解进程的独立空间; (2)加深对进程概念的理解,明确进程和程序的区别; (3)进一步认识并发执行的实质; (4)了解红帽子(Linux)系统中进程通信的基本原理。 (5)理解线程的相关概念。 要求: 1、请查阅资料,掌握进程的概念,同时掌握进程创建和构造的相关知识和线程创建和 构造的相关知识,了解C语言程序编写的相关知识; (1)进程: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内

存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。 (2)进程的创建和构造: 进程简单来说就是在操作系统中运行的程序,它是操作系统资源管理的最小单位。但是进程是一个动态的实体,它是程序的一次执行过程。进程和程序的区别在于:进程是动态的,程序是静态的,进程是运行中的程序,而程序是一些保存在硬盘上的可执行代码。新的进程通过克隆旧的程序(当前进程)而建立。fork() 和clone()(对于线程)系统调用可用来建立新的进程。 (3)线程的创建和构造: 线程也称做轻量级进程。就像进程一样,线程在程序中是独立的、并发的执行路径,每个线程有它自己的堆栈、自己的程序计数器和自己的局部变量。但是,与独立的进程相比,进程中的线程之间的独立程度要小。它们共享内存、文件句柄和其他每个进程应有的状态。 线程的出现也并不是为了取代进程,而是对进程的功能作了扩展。进程可以支持多个线程,它们看似同时执行,但相互之间并不同步。一个进程中的多个线程共享相同的内存地址空间,这就意味着它们可以访问相同的变量和对象,而且它们从同一堆中分配对象。尽管这让线程之间共享信息变得更容易,但你必须小心,确保它们不会妨碍同一进程里的其他线程。 线程与进程相似,是一段完成某个特定功能的代码,是程序中单个顺序的流控制,但与进程不同的是,同类的多个线程是共享同一块内存空间和一组系统资源的,而线程本身的数据通常只有微处理器的寄存器数据,以及一个供程序执行时使用的堆栈。所以系统在产生一个线程,或者在各个线程之间切换时,负担要比进程小得多,正因如此,线程也被称为轻型进程(light-weight process)。一个进程中可以包含多个线程。 2、理解进程的独立空间的实验内容及步骤

山大操作系统实验-1

操作系统原理实验报告——实验一 张咪软件工程四班 一、实验目的 加深对于进程并发执行概念的理解。实践并发进/线程 的创建和控制方法。观察和体验进程的动态特性。进 一步理解进程生命期期间创建、变换、撤销状态变换 的过程。掌握进程控制的方法,了解父子进程间的控 制和协作关系。练习Linux系统中进/线程创建与控制 有关的系统调用的编程和调试技术。 二、实验要求 编写一个多进程并发执行程序。父进程每隔3秒重复建立两个子进程,首先创建的让其执行ls命令,之后创建执行让其执行ps命令,并控制ps命令总在ls命令之前执行。 三、实验软硬件环境 实验环境均为Linux操作系统,开发工具为gcc和g++。 四、实验思路 调用fock()创建子进程。创建键盘中断信号后,使用pause()可以暂停子进程执行,继续创建新的子进程。子进程并发执行子进程可以首先通过键盘中断信号唤醒子进程。通过exec()调用族装入一个新的执行程序。在建立子进程2并且唤醒子进程1后子进程sleep(seconds = 5)。这样就可以先执行ps后执行ls。。最后就是父进程的结束,程序结束。 五、实验模型 六、调试排错

1、首先遇到的问题是,对linux的操作不熟悉,不太明白makefile怎么使用,直接用了gcc 2、在创建多个子进程上遇到了问题,在fock()后又直接跟了一个fork(),这样创建的子进程是子进程的子进程,而不是父进程创建的第二个子进程。所以应该在else语句块后面,也就是主进程执行段继续创建。一般情况下,fork()按如下规则编程: main() { pid_t pid; pid=fork(); if(pid<0) { // 建立子进程失败 { printf("Create Process fail!\n"); exit(EXIT_FAILURE); } if (pid = = 0) //子进程代码; //如果需要创建子进程,可以按该方法嵌套 else //父进程代码 //如果需要创建子进程,可以按该方法嵌套 } 3、后来父进程与子进程无法重复建立,执行一次就结束了,又加了一个while循环实现重复建立,但无法退出,一直执行。又加了一个count计数变量,执行五次后停止。 七、实验结果 父进程首先创建了子进程a,子进程1暂停。父进程继续创建子进程b。子进程b唤醒了子进程a,子进程a进入sleep()。子进程2执行ps退出,子进程1执行ls。循环五次退出。

操作系统实验四

青岛理工大学课程实验报告

算法描述及实验步骤 功能:共享存储区的附接。从逻辑上将一个共享存储区附接到进程的虚拟地址空间上。用于建立调用进程与由标识符shmid指定的共享内存对象之间的连接。 系统调用格式:virtaddr=shmat(shmid,addr,flag) 该函数使用头文件如下: #include #include #include (8)shmdt( ) 功能:用于断开调用进程与共享内存对象之间的连接,成功时返回0,失败返回-1。 系统调用格式: int shmdt(shmaddr) char *shmaddr;/*采用shmat函数的返回值*/ (9)shmctl( ) 功能:共享存储区的控制,对其状态信息进行读取和修改。用于对已创建的共享内存对象进行查询、设置、删除等操作。 系统调用格式:shmctl(shmid,cmd,buf) 该函数使用头文件如下: #include #include #include 2、步骤: (1)定义进程变量(2)定义两个字符数组 (3)创建管道(4)如果进程创建不成功,则空循环(5)如果子进程创建成功,pid为进程号(6)锁定管道 (7)给Outpipe赋值(8)向管道写入数据 (9)等待读进程读出数据(10)解除管道的锁定 (11)结束进程等待子进程结束(12)从管道中读出数据 (13)显示读出的数据(14)父进程结束 创建jincheng.c 插入文字

调 试 过 程 及 实 验 结 果 运行: 运行后: 总 结 (对实验结果进行分析,问题回答,实验心得体会及改进意见) 虽然对pipe()、msgget()、msgsnd()、msgrcv()、msgctl()、shmget()、shmat()、 shmdt()、shmctl()的功能和实现过程有所了解,但是运用还是不熟练,过去没 见过,所以运行了一个简单的程序。 利用管道机制、消息缓冲队列、共享存储区机制进行进程间的通信,加深了对 其了解。 (1)管道通信机制,同步的实现过程:当写进程把一定数量的数据写入pipe, 便去睡眠等待,直到读进程取走数据后,再把它唤醒。当读进程读一空pipe 时,也应睡眠等待,直到写进程将数据写入管道后,才将之唤醒,从而实现进 程的同步。 管道通信的特点:A管道是半双工的,数据只能向一个方向流动;需要双方通 信时,需要建立起两个管道;B. 只能用于父子进程或者兄弟进程之间(具有亲 缘关系的进程);C.单独构成一种独立的文件系统:管道对于管道两端的进程而

山大操作系统实验5

进程同步实验 张咪 软件四班一、实验目的 总结和分析示例实验和独立实验中观察到的调试和运行信息,说明您对与解决非对称性互斥操作的算法有哪些新的理解和认识?为什么会出现进程饥饿现象?本实验的饥饿现象是怎样表现的?怎样解决并发进程间发生的饥饿现象?您对于并发进程间使用消息传递解决进程通信问题有哪些新的理解和认识?根据实验程序、调试过程和结果分析写出实验报告。 二、实验要求 理发店问题:假设理发店的理发室中有3个理发椅子和3个理发师,有一个可容纳4个顾客坐等理发的沙发。此外还有一间等候室,可容纳13位顾客等候进入理发室。顾客如果发现理发店中顾客已满(超过20人),就不进入理发店。在理发店内,理发师一旦有空就为坐在沙发上等待时间最长的顾客理发,同时空出的沙发让在等候室中等待时间最长的的顾客就坐。顾客理完发后,可向任何一位理发师付款。但理发店只有一本现金登记册,在任一时刻只能记录一个顾客的付款。理发师在没有顾客的时候就坐在理发椅子上睡眠。理发师的时间就用在理发、收款、睡眠上。请利用linux系统提供的IPC进程通信机制实验并实现理发店问题的一个解法。 三、实验环境 实验环境均为Linux操作系统,开发工具为gcc和g++。 四、实验思路 约束: 1.设置一个count变量来对顾客进行计数,该变量将被多个顾客进程互斥地访问并修改,通过一个互斥信号量mutext来实现。 count>20时,就不进入理发店。 7

山东大学操作系统复习题计算题

操作系统计算题 (2)对于上述算法,各个作业的周转时间是多少?平均周转时间是多少? (3)对于上述算法,各个作业的带权周转时间是多少?平均带权周转时间是多少 二、有两个程序,A程序按顺序使用CPU 10S,使用设备甲5S,使用CPU 5S,使用设备乙10S,最后使 用CPU 10S。B程序按顺序使用设备甲10S,使用CPU 10S,使用设备乙5S,使用CPU 5S,使用设备乙10S。在顺序环境下先执行A程序再执行B程序,CPU的利用率是多少?提示:CPU利用率=CPU 运行时间/程序运行时间。 三、在单机系统中,系统中各个进程到达就绪队列的时刻、执行时间和优先级如下表所示。假设进程的 调度时间忽略不计。请分别给出采用下面不同的进程调度算法时各个进程的调度次序,画出执行时 (1)先来先服务调度算法; (2)时间片轮换调度算法(时间片为1ms); (3)抢占式短进程优先调度算法; (4)抢占式优先级调度算法; (5)非抢占式优先级调度算法。 (2)用一个执行时间图描述在RR算法时(不考虑优先级),执行这些作业的情况(时间片为1

单位)。 五、设系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算结果。设每个 用户程序对应一个进程。问:这三个进程间有什么样的制约关系?试用P 、V 操作写出这些进程使用打印机的算法。 六、有三个进程P1,P2和P3并发工作。进程P1需用资源S3和S1;进程P2需用资源S1和S2;进程 P3需用资源S2和S3。回答: (1)若对资源分配不加限制,会发生什么情况?为什么? (2)为保证进程正确工作,应采用怎样的资源分配策略?为什么? 七、用信号灯及P 、V 操作来描述右图 1、说明进程的同步关系: 2、设置信号灯,说明含义、初值。 3、写出程序描述( 用P 、V 操作描述 P1、P2、P3)。 主函数如下: main() {int s13=0,s23=0; cobegin p1; p2; p3; coend} 八、假定系统中有4个进程P1、P2、P3、P4和3种类型的资源R1、R2、R3,数量分别为9、3、6,在 t0时刻的资源分配情况如表所示。 表 t0时刻的资源分配表 Max Allocation Need Available R1 R2 R3 R1 R2 R3 R1 R2 R3 R1 R2 R3 P1 3 2 2 1 0 0 2 2 2 1 1 2 P2 6 1 3 5 1 1 1 0 2 P3 3 1 4 2 1 1 1 0 3 P4 4 2 2 2 4 2 (2)P2发出请求向量Request2(1,0,1),系统能否将资源分配给它? (3)在P2申请资源后,若P1发出请求向量Request1(1,0,1),系统能否将资源分配给 它? (4)在P1申请资源后,若P3发出请求向量Request3(0,0,1),系统能否将资源分配给 它? 九、试化简图1中的进程——资源图,并利用死锁定理给出相应的理论。 资 源 情 况 进 程

操作系统实验报告

操作系统实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

许昌学院 《操作系统》实验报告书学号: 姓名:闫金科 班级:14物联网工程 成绩: 2016年02月

实验一Linux的安装与配置 一、实验目的 1.熟悉Linux系统的基本概念,比如Linux发行版、宏内核、微内核等。 2.掌握Linux系统的安装和配置过程,初步掌握Linux系统的启动和退出方 法。 3.熟悉Linux系统的文件系统结构,了解Linux常用文件夹的作用。 二、实验内容 1.从网络上下载VMware软件和两个不同Linux发行版镜像文件。 2.安装VMware虚拟机软件。 3.在VMware中利用第一个镜像文件完成第一个Linux的安装,期间完成网络 信息、用户信息、文件系统和硬盘分区等配置。 4.在VMware中利用第二个镜像文件完成第二个Linux的安装,并通过LILO或 者GRUB解决两个操作系统选择启动的问题。 5.启动Linux系统,打开文件浏览器查看Linux系统的文件结构,并列举出 Linux常用目录的作用。 三、实验过程及结果 1、启动VMware,点击新建Linux虚拟机,如图所示: 2、点击下一步,选择经典型,点击下一步在选择客户机页面选择 Linux,版本选择RedHatEnterpriseLinux5,如图所示: 3、点击下一步创建虚拟机名称以及所要安装的位置,如图所示: 4、点击下一步,磁盘容量填一个合适大小,此处选择默认值大小 10GB,如图所示: 5、点击完成,点击编辑虚拟机设置,选择硬件选项中的CD-ROM (IDE...)选项,在右侧连接中选择“使用ISO镜像(I)”选项,点 击“浏览”,找到Linux的镜像文件,如图所示:

山东大学Java高程序语言期末考试题(含答案)

1.下列关于计算机系统和Java编程语言的说法,正确的是(C) A.计算机是由硬件、操作系统和软件组成,操作系统是缺一不可的组成部分。 B.Java语言编写的程序源代码可以不需要编译直接在硬件上运行。 C.在程序中书写注释不会影响程序的执行,可以多写一些详细的注释。 D.Java的集成开发环境(IDE),如Eclipse,是开发Java语言必需的软件工具。2.下列选项中符合Java命名规则的标识符是(D) A.2japro B. &Class C. const D. _123 3.下列在Java语言中关于数据类型和包装类的说法,正确的是(B) A.基本(简单)数据类型是包装类的简写形式,可以用包装类替代基本(简单)数据 类型。 B.long和double都占了64位(64bit)的存储空间。 C.默认的整数数据类型是int,默认的浮点数据类型是float。 D.和包装类一样,基本(简单)数据类型声明的变量中也具有静态方法,用来完成进 制转化等。 4.下面赋值语句中正确的是(A) A.double d=5.3e12; B. float f=11.1; C.int i=0.0; D. Double oD=3; 5.如果int x=20, y=5,则语句System.out.println(x+y +""+(x+y)+y); 的输出结果是(D) A.2530 B. 55 C. 2052055 D. 25255 6.如下Java语句double x=2.0; int y=4; x/=++y; 执行后,x的值是(C) A.0.5 B. 2.5 C. 0.4 D. 2.0 7.下列关于Java语言中String和char的说法,正确的是(C) A.String是Java定义的一种基本数据类型。 B.String是以“\0”结尾的char类型的数组char[]。 C.使用equals()方法比较两个String是否内容一样(即字符串中的各个字符都一样)。 D.Char类型在Java语言里面存储的是ASCII码。 8.下列关于Java中类的构造方法的描述,正确的是(B) A.构造方法的返回类型为void B. 可以定义一个类而在代码中不写构造方法。 C. 在同一个类中定义的重载构造方法不可以相互调用。 D. 子类不允许调用父类的构造方法。 9.下列关于Java类中方法的定义,正确的是(D) A.若代码执行到return语句,则将当前值返回,而且继续执行return语句后面的语句。 B.只需要对使用基本数据类型定义的属性使用getter和setter,体现类的封装性。 C.方法的返回值只能是基本数据类型。 D.在同一个类中定义的方法,允许方法名称相同而形参列表不同,并且返回值数据类 型也不同。 10. 关于Java语言中的final关键字的使用,下列说法正确的是(C) A.在使用final关键字定义的方法里面使用final关键字定义变量。 B.使用final关键字定义变量,必须在变量定义的同时给定变量的具体数值,完成变量初始化。 C.final关键字可以用来修饰方法,表明此方法不可以被子类重写。 D.使用final关键字定义变量,必须同时使用static关键字。 11. 以下关于Object类的说法正确的是(A)

山大网络教育-操作系统B

《操作系统原理》模拟卷 一, 选择题 1.( D )不是基本的操作系统. A,批处理操作系统 B,分时操作系统 C,实时操作系统 D,网络操作系统 2.( C )不是分时系统的基本特征: A,同时性 B,独立性 C,实时性 D,交互性 3.处理器执行的指令被分成两类,其中有一类称为特权指令,它只允许( C )使用. A,操作员 B,联机用户 C,操作系统 D,目标程序 4.当用户程序执行访管指令时,中断装置将使中央处理器( B )工作. A,维持在目态 B,从目态转换到管态 C,维持在管态 D,从管态转换到目态 5.进程所请求的一次打印输出结束后,将使进程状态从( D ) A,运行态变为就绪态 B,运行态变为等待态 C,就绪态变为运行态 D,等待态变为就绪态 6.采用动态重定位方式装入的作业,在执行中允许( C )将其移动. A,用户有条件地 B,用户无条件地 C,操作系统有条件地 D,操作系统无条件地 7.分页式存储管理中,地址转换工作是由( A )完成的. A,硬件

B,地址转换程序 C,用户程序 D,装入程序 二,多项选择题。在每小题列出的五个选项中有二至五个选项是符合题目要求的,请将正确选项的字母填在题干中的括号内.多选,少选,错选均无分. 1.利用记录的成组与分解操作能( ABE ) A,有效地实现信息转储 B,提高存储介质的利用率 C,减少操作系统的程序量 D,增加启动外设的次数 E,提高文件的存取速度 2.对UNIX中的trap指令,下列说法中( AD )是正确的. A,可供用户使用 B,UNIX的例外处理程序也可使用trap指令 C,trap指令是特权指令 D,trap指令是在管态下运行 E,UNIX的例外处理也是从trap指令进入的 3.引入多道程序设计的主要目的在于( BD ) A,提高实时响应速度 B,充分利用处理机,减少处理机空闲时间 C,有利于代码共享 D,充分利用外围设备 E,减少存储器碎片 三, 填空题 1.在批处理兼分时的系统中,往往由分时系统控制的作业称为前台作业,而由批处理系统控制的作业称为后台作业. 2.操作系统为用户提供两种类型的使用接口,它们是操作员接口和程序员接口. 3.操作系统中,进程可以分为系统进程和用户进程两类. 4.用户调用建立和打开文件操作来申请对文件的使用权. 5.在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时, 计算时间短的作业将得到优先调度;当各个作业要求运行的时间相同时, 等待时间长的作业得到优先调度. 四, 简答题 1.进程调度中"可抢占"和"非抢占"两种方式,哪一种系统的开销更大为什么 1.可抢占式会引起系统的开销更大. 可抢占式调度是严格保证任何时刻,让具有最高优先数(权)的进程占有处理机运行,因此增加了处理机调度的时机,引起为退出处理机的进程保留现场,为占有处理机的进程恢复现场等时间(和空间)开销增大. (注:不写空间开销也可.)

操作系统原理实验报告(终版)

操作系统原理实验报告(终版)

————————————————————————————————作者:————————————————————————————————日期:

[键入文字] XX学校 实验报告 课程名称: 学院: 专业班: 姓名: 学号: 指导教师: 2011 年3 月

目录 实验1 进程管理 (3) 一、实验目的 (3) 二、实验内容 (3) 三、实验要求 (3) 四、程序说明和程序流程图 (4) 五、程序代码 (5) 六、程序运行结果及分析 (7) 七.指导教师评议 (8) 实验2 进程通信 (9) 一、实验目的 (9) 二、实验内容 (9) 三、实验要求 (9) 四、程序说明和程序流程图 (9) 五、程序代码 (11) 七.指导教师评议 (14) 实验3 存储管理 (15) 一、实验目的 (15) 二、实验内容 (15) 三、实验要求 (15) 四、程序说明和程序流程图 (16) 六、程序运行结果及分析 (23)

七.指导教师评议 (23) 实验4 文件系统 (24) 一、实验目的 (24) 二、实验内容 (24) 三、实验要求 (24) 四、程序说明和程序流程图 (24) 五、程序代码 (26) 六、程序运行结果及分析 (26) 七.指导教师评议 (27)

实验1 进程管理 一、实验目的 1. 弄清进程和程序的区别,加深对进程概念的理解。 2. 了解并发进程的执行过程,进一步认识并发执行的实质。 3. 掌握解决进程互斥使用资源的方法。 二、实验内容 1. 管道通信 使用系统调用pipe( )建立一个管道,然后使用系统调用fork( )创建2个子进程p1和p2。这2个子进程分别向管道中写入字符串:“Child process p1 is sending message!”和“Child process p2 is sending message!”,而父进程则从管道中读出来自两个子进程的信息,并显示在屏幕上。 2. 软中断通信 使用系统调用fork( )创建2个子进程p1和p2,在父进程中使用系统调用signal( )捕捉来自键盘上的软中断信号SIGINT(即按Ctrl-C),当捕捉到软中断信号SIGINT后,父进程使用系统调用kill( )分别向2个子进程发出软中断信号SIGUSR1和SIGUSR2,子进程捕捉到信号后分别输出信息“Child process p1 is killed by parent!”和“Child process p2 is killed by parent!”后终止。而父进程等待2个子进程终止后,输出信息“Parent process is killed!”后终止。 三、实验要求 1. 根据实验内容编写C程序。 2. 上机调试程序。 3. 记录并分析程序运行结果。

2014-2015山东大学操作系统试题

山东大学2014-2015年操作系统试题 一、解释概念(3*5=15分) 1、Thread 2、Race Condition 3、RAID 4、Device Driver 5、System Call 二、 1、简述磁盘分配的三种方式(continuous、linked、indexed)和各自优缺点(6分) 2、简述死锁的避免、死锁预防并比较区别(6分) 3、访存操作可能会导致IO的进行,某进程读写文件时可能并没有IO设备执行,为什么?(8分) 三、以下是四个进程的到达时间和运行时间。 分别画出FIFO和SJF调度的甘特图,并计算平均等待时间。 四、某磁盘逻辑地址32位,页大小16K,页表项大小4B 1、采用多层页表结构,该采用几层页表?页偏移多少比特?画出地址分配。 2、对逻辑地址54321(10进制),简述求实际地址的过程(忽略缺页中断) 3、CPU和操作系统在分页中各自承担了那些工作,简要说明 五、 1、画出进程的状态图(new、ready、running、wait、terminated),并标注转化条件。 2、简述阻塞、饥饿、死锁的区别。 3、FIFO和LRU的页面置换算法哪个更好,为什么? 六、 结合你所学的计算机知识,简述保护的概念。(卷子上提示:从硬件层面、文件管理、设备管理、存储管理、进程同步等方面)(10分) 七、从前有座山,山上有座庙,山下有口井。庙里小和尚需要挑水。有人舞担,有人拿桶,有人诵挑水秘诀。挑水时,三个和尚必须一人持担,一人拿桶、一人诵挑水秘诀(同时进行)后方能挑水。每个和尚都是先喜欢诵诀,其次持担、其次持桶。请写出信号量和相关伪代码。 Author:hagen @ online Contributor:YCL HXY

山东大学操作系统实验二

软件学院操作系统实验报告 实验题目: 实验二、线程和进程/线程管道通信实验 学号:201100300124 日期:2013年04月19日 班级:5班姓名:韩俊晓 Email:hanjunxiao188@https://www.wendangku.net/doc/ef13626799.html, 实验目的: 通过Linux 系统中线程和管道通信机制的实验,加深对于线程控制和管道通信概念的理解,观察和体验并发进/线程间的通信和协作的效果,练习利用无名管道进行进/线程间通信的编程和调试技术。 实验要求: 设有二元函数f(x,y) = f(x) + f(y) 其中:f(x) = f(x-1) * x(x >1) f(x)=1(x=1) f(y) = f(y-1) + f(y-2)(y> 2) f(y)=1(y=1,2) 请编程建立3个并发协作进程(或线程),它们分别完成f(x,y)、f(x)、f(y) 其中由父进程(或主线程)完成:f(x,y) = f(x) + f(y) 由子进程1(或线程1)完成:f(x) = f(x-1) * x(x >1) f(x)=1(x=1)

由子进程2(或线程2)完成:f(y) = f(y-1) + f(y-2)(y> 2) f(y)=1(y=1,2) 硬件环境: 实验室计算机 软件环境: Ubuntu08.4-Linux操作系统 BASH_VERSION='3.2.33(1)-release gcc version 4.1.2 gedit 2.18.2 OpenOffice 2.3 实验步骤: 1.实验说明: 1)与线程创建、执行有关的系统调用说明 线程是在共享内存中并发执行的多道执行路径,它们共享一个进程的资源,如进程程序段、文件描述符和信号等,但有各自的执行路径和堆栈。线程的创建无需像进程那样重新申请系统资源,线程在上下文切换时也无需像进程那样更换内存映像。多线程的并发执行即避免了多进程并发的上下文切换的开销又可以提高并发处理的效率。 Linux 利用了特有的内核函数__clone 实现了一个叫phread 的线程库,__clone是fork 函数的替代函数,通过更多的控制父子进程共享哪些资源而实现了线程。Pthread 是一个标准化模型,用它可把一个程序分成一组能够并发执行的多个任务。phread 线程库是POSIX 线程标

山东大学操作系统复习题计算题

操作系统计算题 一、假定在单CPU条件下有下列要执行的作业: (1)用一个执行时间图描述在采用非抢占优先级算法时执行这些作业的情况; (2)对于上述算法,各个作业的周转时间是多少?平均周转时间是多少? (3)对于上述算法,各个作业的带权周转时间是多少?平均带权周转时间是多少 二、有两个程序,A程序按顺序使用CPU 10S,使用设备甲5S,使用CPU 5S,使用设备乙10S,最 后使用CPU 10S。B程序按顺序使用设备甲10S,使用CPU 10S,使用设备乙5S,使用CPU 5S,使用设备乙10S。在顺序环境下先执行A程序再执行B程序,CPU的利用率是多少?提示:CPU 利用率=CPU运行时间/程序运行时间。 三、在单机系统中,系统中各个进程到达就绪队列的时刻、执行时间和优先级如下表所示。假设进程的 调度时间忽略不计。请分别给出采用下面不同的进程调度算法时各个进程的调度次序,画出执行时间图,并计算平均周转时间、平均带权周转时间。

(1)先来先服务调度算法; (2)时间片轮换调度算法(时间片为1ms); (3)抢占式短进程优先调度算法; (4)抢占式优先级调度算法; (5)非抢占式优先级调度算法。 四、假设在单CPU条件下有下列要执行的作业: (1)用一个执行时间图描述在非抢占优先级算法时,执行这些作业的情况。

(2)用一个执行时间图描述在RR算法时(不考虑优先级),执行这些作业的情况(时间片为1单位)。 五、设系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算结果。设每个 用户程序对应一个进程。问:这三个进程间有什么样的制约关系?试用P、V操作写出这些进程使用打印机的算法。 六、有三个进程P1,P2和P3并发工作。进程P1需用资源S3和S1;进程P2需用资源S1和S2;进 程P3需用资源S2和S3。回答: (1)若对资源分配不加限制,会发生什么情况?为什么? (2)为保证进程正确工作,应采用怎样的资源分配策略?为什么? 七、用信号灯及P、V操作来描述右图 1、说明进程的同步关系: 2、设置信号灯,说明含义、初值。 3、写出程序描述(用P、V操作描述P1、P2、P3)。 主函数如下: main() {int s13=0,s23=0; cobegin p1;

操作系统实验报告

实验二进程调度 1.目的和要求 通过这次实验,理解进程调度的过程,进一步掌握进程状态的转变、进程调度的策略,进一步体会多道程序并发执行的特点,并分析具体的调度算法的特点,掌握对系统性能的评价方法。 2.实验内容 阅读教材《计算机操作系统》第二章和第三章,掌握进程管理及调度相关概念和原理。 编写程序模拟实现进程的轮转法调度过程,模拟程序只对PCB进行相应的调度模拟操作,不需要实际程序。假设初始状态为:有 n 个进程处于就绪状态,有m个进程处于阻塞状态。采用轮转法进程调度算法进行调度(调度过程中,假设处于执行状态的进程不会阻塞),且每过 t 个时间片系统释放资源,唤醒处于阻塞队列队首的进程。 程序要求如下: 1)输出系统中进程的调度次序; 2)计算CPU利用率。 3.实验环境 Windows操作系统、VC++6.0 C语言

4 设计思想: (1)程序中进程可用PCB表示,其类型描述如下: struct PCB_type { int pid ;// 进程名 int state ;// 进程状态 2——表示“执行”状态 1——表示“就绪”状态 0——表示“阻塞”状态 int cpu_time ; //运行需要的CPU寸间(需运行的时间片 个数) } 用PCB来模拟进程; (2)设置两个队 列,将处于“就绪”状态的进程PCB挂在队列readyxx ;将处于“阻塞”状态的进程 PCB挂在队列blockedxx。 队列类型描述如下: struct QueueNode{

struct PCB_type PCB; Struct QueueNode *next; } 并设全程量: struct QueueNode *ready_head=NULL,//ready 队列队首指针 *ready_tail=NULL , //ready 队列队尾指针 *blocked_head=NULL,//blocked 队列队首指 针 *blocked_tail=NULL; //blocked 队列队尾指 针 (3)设计子程序: start_state(); 读入假设的数据,设置系统初始状态,即初始化就绪队列和 阻塞队列 dispath(); 模拟调度,当就绪队列的队首进程运行一个时间片后,放到就绪队列末尾,每次都是队首进程进行调度,一个进程运行结束 就从就绪队列中删除,当到 t 个时间片后,唤醒阻塞队列队首进程。

相关文档
相关文档 最新文档