操作系统第一次实验作业

合集下载

操作系统实验报告(全)

操作系统实验报告(全)

操作系统实验报告书院系名称:电子工程学院电子指导教师:班级:学号:学生姓名:实验题目一:进程一、实验目的通过观察、分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在POSIX 规范中fork和kill系统调用的功能和使用。

二、实验内容(1)补充POSIX 下进程控制的残缺版实验程序(2)回答下列问题:1. 你最初认为运行结果会怎么样?2. 实际的结果什么样?有什么特点?试对产生该现象的原因进行分析。

3. proc_number 这个全局变量在各个子进程里的值相同吗?为什么?4. kill 命令在程序中使用了几次?每次的作用是什么?执行后的现象是什么?5. 使用kill 命令可以在进程的外部杀死进程。

进程怎样能主动退出?这两种退出方式哪种更好一些?三、实验步骤1.根据题意进入DOC环境中编写程序。

2.编译,链接,运行程序,进行调试。

3.分析实验结果及回答问题。

四、调试情况,回答问题及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。

2、在设计过程中的感受。

调试情况:回答上述实验内容中的问题1.预期结果:会持续输出0-9号进程,直到输入数字键+回车,则会杀死该进程,接下来的输出将不会有该进程号,当输入q+回车,则退出程序。

2.实际结果:与预期差不多,因输入进程总数20大于设定的最大进程数,因此按进程数10来处理。

随机输出0-9号进程,sleep(SLEEP_INTERV AL),循环输出,直到输入数字键,则会杀死该数字对应的进程,直到输入q退出循环,然后杀死本组所有进程。

分析:每创建一个子进程时,将其pid存储在pid[i]中,i存储在proc_number,然后调用死循环函数do_something(),输出该进程的代号proc_number;当输入数字键时,主进程会执行kill(pid[ch-'0'],SIGTERM),从而杀死(ch-‘0’)号进程。

操作系统实验1

操作系统实验1

实验报告书学生姓名高雪学号班级计10A-2 2011 —2012 学年第一学期2021-8-19 第2页/共12页2021-8-19 第3页/共12页5.signal()signal()函数是允许调用进程控制软中断信号的处理。

6.pipe()函数pipe函数用于创建一个管道五、编译与执行过程截图1.进程的创建执行后出现acb和abc两种不同情况2.进程的控制〔1〕加锁情况:2021-8-19 第4页/共12页( 2 )没有加锁的情况3.进程的软中断通信2021-8-19 第5页/共12页4.进程的管道通信六、实验结果与分析1.进程的创建:实验一为进程创建,由以上截图可以看到产生了不同的结果,即acb和abc。

最初只有acb一种情况,反复执行之后,会出现abc。

原因很简单,就是因为进程的特性:并发性。

进程之间是并发执行的,并发只说一段时间内同时进行。

第一个输出一定是a,因为a在bc之外优先执行,而在执行bc的时候,2者会随机出现,多数情况会是acb,假设想更快的见到abc,可以讲c语句变长,如改为this is c child.这样进程需要的时间就稍长,后一个会先出现了。

但宏观来看,还是并行的。

2. 进程的控制实验二为进程控制,分为不加锁和加锁的情况,产生的结果不同,在不加锁的情况下,还有由于进程的执行具有并发性这个特征,因此会产生字符交叉的情况,即某一个进程在自己的时间片当中使用处理机,但是当时间片结束,还没有完成,但也必须由下一个进程接管处理机,因为它就进入了阻塞的状态。

多个进程反复出现,所以就出现了输出的字符交叉的情况。

但是,当我们对进程加锁后,就说明只能由该程序占用处理机,必须这些完这段程序才能执行下一段,因为不会出现交叉的情况,这个就是锁的作用。

2021-8-19 第6页/共12页2021-8-19 第7页/共12页2021-8-19 第8页/共12页2021-8-19 第9页/共12页2021-8-19 第10页/共12页2021-8-19 第11页/共12页2021-8-19 第12页/共12页。

南京邮电大学-操作系统实验报告

南京邮电大学-操作系统实验报告

课内实验报告课程名:操作系统任课教师:沈超专业:信息管理与信息系统学号:姓名:二○一六至二○一七年度第一学期南京邮电大学经济与管理学院Process[numberschedul].order=tempcounter;}程序结果截图:二、银行家算法(网上借鉴)银行家算法,当进程提出资源申请时,系统首先检查该进程对资源的申请量是否超过其最大需求量及系统现有的资源能否满足进程需要。

若超过,则报错,若不能满足,则让该进程等待;否则进一步检查把资源分给该进程后系统能否出于安全状态,若安全,则分配,否则置该进程为等待资源状态。

算法实现过程:设进程i 提出请求REQUEST [j] ,则银行家算法按如下规则进行判断。

(1) 如果REQUEST [i] [j]<= NEED[i][j] ,则转(2) ;否则,出错。

(2) 如果REQUEST [i] [j]<= A V AILABLE[i][j] ,则转(3) ;否则,出错。

(3) 系统试探分配资源,修改相关数据:A V AILABLE[j]-=REQUEST[i][j];ALLOCATION[i][j]+=REQUEST[i][j];NEED[i][j]-=REQUEST[i][j];(4) 系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。

Check()关键代码:{int k, f, no=0;int work[M],a[M];char finish[M];anquan=1;for(i=0;i<n; i++) finish[i]='F';for(j=0;j<m; j++) work[j]=available[j]; k=n;do{ for (i=0;i<n; i++){if (finish[i]=='F'){ f=1;for (j=0;j<m; j++)if (need[i][j]>work[j]) printf("处于安全状态.");printf("安全序列号:");for (i=0;i<n;i++) printf ("%d ",a[i]); printf("\n");printf("进程");printf(" ");printf(" Max ");rintf(" ");rintf("allocation");printf(" ");printf("need");printf(" ");f=0;if (f==1)//找到还没完成的且需求数小于可提供进程继续运行的{ finish[i]='T';a[no++]=i;//记录安全序列号for (j=0;j<m; j++)work[j]=work[j]+allocation[i][j];//释放该进程已分配的资源available[j] =work[j];}}}k--; }while(k>0);f=1;for (i=0;i<n; i++)//判断有没有进程没完成{ if (finish[i]=='F'){f=0;break; }} if (f==0) {printf("不安全状态!\n");anquan=0;} else {printf("available");printf("\n");for (i=0;i<n; i++){ printf("%2d",i);printf(" ");for(j=0;j<m; j++)printf("%2d",max[i][j]);printf(" ");for(j=0;j<m; j++)printf("%2d",allocation[i][j]);printf(" ");for(j=0;j<m; j++)printf("%2d",need[i][j]);printf(" ");for(j=0;j<m; j++){if(i>0)break;printf("%2d",available[j]);}printf("\n");}}}程序结果截图:三、实验总结:这次上机模拟了进程调度过程和解决了死锁问题,让我对短作业优先调度算法和银行家算法有了比在课堂上更深刻的认识。

操作系统 第二章作业本(含答案)

操作系统 第二章作业本(含答案)

第二章作业第一次作业:1.进程有哪三种基本状态?进程在三种基本状态之间转换的典型原因是什么?答:三种基本状态:就绪状态、执行状态、阻塞状态。

(1)就绪状态→执行状态:进程分配到CPU资源(进程调度);(2)执行状态→就绪状态:时间片用完(3)执行状态→阻塞状态:I/O请求(4)阻塞状态→就绪状态:I/O完成2.在Linux系统中运行下面程序,最多可产生多少个进程?画出进程家族树。

main(){fork();fork();fork();}答:最多可以产生7个进程。

其家族树为:3.试从动态性、并发性和独立性上比较进程和程序。

答:1)动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动的含义,因而是静态的;2)并发性是进程的重要特征,同时也是OS的重要特征。

引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身(没有建立PCB)是不能并发执行的;3)独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。

凡未建立PCB的程序,都不能作为一个独立的单位来运行。

4.分析下列代码的功能:答:sleep_on实现进程的睡眠过程;wake_up实现进程的唤醒过程。

第二次作业:1.同步机制应该遵循哪些基本准则?你认为整型信号量机制遵循了同步机制的哪些基本准则?答:同步机制应遵循四个基本准则:a. 空闲让进:当无进程处于临界区时,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。

b. 忙则等待:当已有进程进入临界区时,其它试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。

c. 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态。

d. 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。

北京工业大学操作系统实验报告0122

北京工业大学操作系统实验报告0122

操作系统实验报告专业计算机科学与技术年级本科三年级学号 ******** 姓名樊文舟目录:一、实验一 ---------------------------------------------31.实验目的-----------------------------------------------------------32.实验内容-----------------------------------------------------------33.实验要求-----------------------------------------------------------34.实验设计-----------------------------------------------------------35.实验程序-----------------------------------------------------------36.实验结果-----------------------------------------------------------47.实验感想-----------------------------------------------------------4二、实验二 ---------------------------------------------41.实验目的-----------------------------------------------------------52.实验内容-----------------------------------------------------------53.实验要求-----------------------------------------------------------54.实验设计-----------------------------------------------------------55.实验程序-----------------------------------------------------------66.实验结果-----------------------------------------------------------77.实验感想-----------------------------------------------------------7三、实验三 ---------------------------------------------81.实验目的-----------------------------------------------------------82.实验内容-----------------------------------------------------------83.实验要求-----------------------------------------------------------84.实验设计-----------------------------------------------------------95.实验程序-----------------------------------------------------------106.实验结果-----------------------------------------------------------117.实验感想-----------------------------------------------------------11四、实验四 ---------------------------------------------121.实验目的-----------------------------------------------------------122.实验内容-----------------------------------------------------------123.实验要求-----------------------------------------------------------124.实验设计-----------------------------------------------------------125.实验结果-----------------------------------------------------------126.实验感想-----------------------------------------------------------12 个人总结---------------------------------------------12实验一 UNIX/LINUX入门一、实验目的了解UNIX/LINUX运行环境,熟悉UNIX/LINUX的常用基本命令,熟悉和掌握UNIX/LINUX 下C语言程序的编写、编译、调试和运行方法。

西安交大操作系统第一次习题课

西安交大操作系统第一次习题课

•请将以下描述这两个活动的PV操作补充完整:
Semaphore s1=0; Semaphore s2=0; main() {cobegin driver(); conductor(); Coend; }
driver() {while(1) {p(s1); 启动车辆; 正常行车; 到站停00个座位。读者进 入时必须先在一张登记表上登记,该表为 每一座位列一表目,包括座号和读者姓名。 读者离开时要消掉登记内容。试用P/v操 作描述读者进程的同步结构。 解析:定义信号量以及相应变量 mutex: semaphore; 互斥信号量 full: semaphore; 同步信号量 table: array 0.. n-1 of item ;
• 解答: • 首先分析两个进程之间的同步关系。汽车行驶过 程中,司机活动与售票员活动之间的同步关系为: – 售票员关车门后,向司机发开车信号 – 司机接到开车信号后起动车辆 – 在汽车正常行驶过程中售票员售票 – 到站时司机停车 – 售票员在车停后开车门让乘客下车 • 定义两个信号量s1:表示是否允许司机起动车辆, s2:表示是否允许售票员开门。初值为0。
begin
seminitial (mutex,1 ; barbers, 0; customers,0); waiting=0; chairs=10; cobegin barber; customer; ….. customer; coend end
Assignment: Extra problem 1
consumer:
p(product);
p(mutex); //remove product
p(mutex);
p(product); //remove product

操作系统第一次作业题

操作系统第一次作业题

本科第一次作业一.选择题1.操作系统是对____进行管理的软件。

( C)A.软件 B.硬件 C.计算机资源 D.应用程序2.在操作系统中,并发性是指若干事件发生。

(C )A.在同一时刻B.一定在不同时刻C.某一时间间隔内D.依次在不同时间间隔内3.操作系统的不确定性是指。

(D )A.程序运行结果的不确定性B.程序运行次序的不确定性C.程序多次运行时间的不确定性D.B和C4.以下不是程序在并发系统内执行的特点(C )A.程序执行的间断性B.相互通信的可能性C.产生死锁的必然性D.资源分配的动态性5.在操作系统中,负责对进程的调度(A )A.处理器管理B.作业管理C.高级调度管理D.存储和设备管理6.以下不属于衡量操作系统性能指标的是。

(A )A.作业的大小B.资源利用率C.吞吐量D.周转时间7.在单处理器系统中,可并行的是。

(D )I.进程与进程II.处理器与设备III.处理器与通道IV.设备与设备A. I,II和IIIB. I,II和IVC. I,III和IVD. II,III和IV8.一个多道批处理系统中仅有P1和P2两个作业,P2比P1晚5ms到达,它们的计算和I/O操作顺序如下:P1:计算60ms,I/O 80ms,计算20msP2:计算120ms,I/O 40ms,计算40ms若不考虑调度和切换时间,则完成两个作业需要的时间最少是。

(B)A.240msB.260msC.340msD.360ms9.下列选项中,在用户态执行的是。

(A )A.命令解释程序B.缺页处理程序C.进程调度程序D.时钟中断处理程序10.下列选项中,不可能在用户态发生的事件是。

(C )A.系统调用B.外部中断C.进程切换D.缺页11.下列选项中,操作系统提供给应用程序的接口是。

(A )A.系统调用B.中断C.库函数D.原语12.并发进程指的是(C)A.可并行执行的进程 B.可同一时刻执行的进程C.可同时执行的进程D.不可中断的进程13.当一个进程处于这样的状态时,,称为阻塞状态。

1Linux教程实验指导书

1Linux教程实验指导书

Linux程序设计实验指导书目录实验一:linux安装 (3)实验二:常用命令的使用 (10)试验三vi编辑器 (11)实验四 shell编程 (11)实验五常用开发工具 (12)实验六 makefile的编写与使用 (14)实验七 Linux环境编程 (14)实验八 (15)实验一:linux安装一、实验目的1.学会在操作系统安装之前,根据硬件配置情况,指定安装计划2.掌握多操作系统安装前,利用硬盘分区工具(如PQMagic)为Linux准备分区3.掌握Linux操作系统的安装步骤4.掌握Linux系统的简单配置方法5.掌握Linux系统的启动、关闭步骤6.掌握在虚拟机上的Linux安装步骤和使用方法二、实验内容1.安装并使用硬盘分区工具,为Linux准备好分区2.安装Linux系统(如红旗Linux桌面版)3.配置Linux系统运行环境4.正确的启动、关闭系统注意:为了避免新手在第一次安装Linux时,破坏掉磁盘上的有用数据,推荐第一次在winxp系统上的虚拟机上安装linux。

因此需要一下步骤:1.安装winxp下的虚拟机软件vmware,并创建一个虚拟机。

2.在虚拟机环境中安装linux系统。

3.配置Linux系统运行环境4.正确启动、关闭系统。

三、背景知识Linux安装有三种方式,分别是:通过光盘安装、硬盘安装和网络安装。

另外有三种形式,分别是:Linux独立操作系统、Linux与windows共存的双(多)操作系统、Windows下虚拟机安装Linux的双(多)操作系统。

在三种安装方式中,通过光盘安装最为简单,但是需要事先从网络上下载安装镜像文件,并将其刻录到光盘上;或者直接从外面买别人刻好的安装光盘。

由于Linux是开源的操作系统,因此不存在“盗版”的说法。

另一种是通过硬盘安装,需要事先将安装镜像文件下载到本地fat32格式的磁盘分区上,然后重新启动进入纯dos下,进行一些必要的设置就可以从硬盘自动安装了,其后的安装步骤跟光盘安装一样。

操作系统实验报告范文模板

操作系统实验报告范文模板

操作系统实验报告范文模板这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。

里面的程序都是我运行过的。

操作系统上机实验报告班级:学号:姓名:实验地点:实验时间:这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。

里面的程序都是我运行过的。

实验一进程的建立【实验目的】创建进程及子进程在父子进程间实现进程通信【实验软硬件环境】Linu某、Window98、Window2000【实验内容】创建进程并显示标识等进程控制块的属性信息;显示父子进程的通信信息和相应的应答信息。

(进程间通信机制任选)【实验程序及分析】编程思路:首先本程序在Linu某用C语言完成的,父子进程的创建用fork函数来实现,然后是父子进程间的通信,这里用pipe实现。

可以定义chan1[2],chan1[2],chan某[0]表示读,chan某[1]表示写。

他们配合使用。

【实验截图】【实验心得体会】通过这次上机练习,我熟悉了用c++实现进程的创建,销毁,父子进程间的通讯等一系列课程中需要学习的内容。

本来进程的概念在一开始我始终无法清晰地理解,但是通过自己用mfc的方法去实现它后,我开始慢慢地理解操作系统的进程的运作机制。

虽然,我只是实现了一个父子进程的创建和通讯,但是,管中窥豹,我想自己开始明白一个操作系统正是由很多这种进程实现功能的。

其中,系统整体的进程调度,管理等等还有很多东西等着我们去进一步学习、理解。

实验二进程间的同步【实验目的】这是操作系统课程中的四次实验最终报告,内包括进程通信实验,进程同步互斥实验,文件系统模拟实验和Linu某hell操作。

里面的程序都是我运行过的。

理解进程同步和互斥模型及其应用【实验软硬件环境】Linu某、Window98、Window2000【实验内容】利用通信API实现进程之间的同步:建立司机和售票员进程;并实现他们间的同步运行。

操作系统原理第一次实验

操作系统原理第一次实验
图二
内容三:敲通如下程序,写出运行结果,分析程序功能。
#include <stdio.h>
#include <pthread.h>
void *ptest(void *arg)
{
printf(" This is the new thread!" );
return(NULL);
}
main()
3
{
pthread_t tid;
实验一进程管理、管道通信
一.实验名称:
进程管理、管道通信
二.实验目的:
1、熟悉linux下利用gcc、gdb编译、调试C程序
2、掌握进程的概念,明确进程的含义
3、认识并了解并发执行的实质
4、掌握进程间无名管道的通信
三.实验准备:
1、预习linux下利用gcc编译c程序。
2、参考课件及资料掌握进程的创建过程。
thread!”返回值为空,程序休眠后结束程序。
图三
内容四:敲通管道通信(课件)例题,写出运行结果,分析程序功能
#include<stdlib.h>
#include<stdio.h>
voidmain()
{
int x,fd[2];
char buf[30],s[30]; pipe(fd); while((x=fork())==-1); if(x==0)
3、参考课件及资料掌握进程的并发执行。
4、参考课件及资料掌握进程间无名管道的通信。
四.实验内Байду номын сангаас:
内容一:敲通如下程序,分析运行结果。
#include <stdio.h>
main()

操作系统-先来先服务算法FCFS(C语言)

操作系统-先来先服务算法FCFS(C语言)
printf("\n时刻:%d,当前开始运行作业%s\n\n",time,p1->name);
time+=p1->ServiceTime;
p1->state='T';
p1->FinishTime=time;
p1->WholeTime=p1->FinishTime-p1->ArriveTime;
p1->WeightWholeTime=p1->WholeTime/p1->ServiceTime;








算法原理:
设计程序模拟进程的先来先服务FCFS过程。假设有n个进程分别在T1,…,Tn时刻到达系统,它们需要的服务时间分别为S1,…,Sn。分别采用先来先服务FCFS调度算法进行调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。
程序要求如下:
run_FCFS(q);
}
p=p->next;
}
}
void getInfo() //获得进程信息并创建进程
{
int num;
printf("\n进程个数:");
scanf("%d",&n);
for(num=0;num<n;num++)
{
p=(pcb *)malloc(sizeof(pcb));
printf("依次输入:\n进程名到达时间服务时间\n");
intServiceTime[MaxNum];
intFinishTime[MaxNum];

windows操作系统实验报告

windows操作系统实验报告

大学操作系统实验报告实验一进程控制与描述一、实验目的通过对Windows2000编程,进一步熟悉操作系统的基本概念,较好地理解Windows2000的结构。

通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows2000进程的“一生”。

三、实验内容和步骤第一部分:Windows2000Professional下的GUI应用程序,使用V isualC++编译器创建一个GUI应用程序,代码中包括了WinMain()方法,该方法GUI类型的应用程序的标准入口点。

程序1-1Windows2000的GUI应用程序也可以利用任何其他文本编辑器键入程序代码,如果这样,例如使用WORD来键入和编辑程序,则应该注意什么问题?保存时,将文件保存为扩展名为*.cpp的C++源文件。

在程序1-1的GUI应用程序中,首先需要Windows.h头文件,以便获得传送给WinMain()和MessageBox()API 函数的数据类型定义。

接着的pragma指令指示编译器/连接器找到User32.LIB库文件并将其与产生的EXE文件连接起来。

这样就可以运行简单的命令行命令CLMsgBox.CPP来创建这一应用程序,如果没有pragma指令,则MessageBox()API 函数就成为未定义的了。

这一指令是V isualStudioC++编译器特有的。

接下来是WinMain()方法。

其中有四个由实际的低级入口点传递来的参数。

hInstance参数用来装入与代码相连的图标或位图一类的资源,无论何时,都可用GetModuleHandle()API函数将这些资源提取出来。

系统利用实例句柄来指明代码和初始的数据装在内存的何处。

句柄的数值实际上是EXE文件映像的基地址,通常为0x00400000。

下一个参数hPrevInstance是为向后兼容而设的,现在系统将其设为NULL。

应用程序的命令行(不包括程序的名称)是lpCmdLine参数。

操作系统第一章到第二章测试题

操作系统第一章到第二章测试题

操作系统第一章到第二章测试题1.配置了操作系统的计算机是一台比原来的物理计算机功能更强的计算机,这样的计算机只是一台逻辑上的计算机,称为()计算机。

A.并行B.真实C.虚拟(正确答案)D.共享2.一个作业第一次执行时用了5min,而第二次执行时用了6min,这说明了操作系统的()特点。

A.并发性B.共享性C.虚拟性D.异步性(正确答案)3.按照所起的作用和需要的运行环境,操作系统属于()。

A.支撑软件B.用户软件C.应用软件D.系统软件(正确答案)4.操作系统的主要功能是存储器管理、设备管理、文件管理、用户接口和()。

A.处理器管理(正确答案)B.用户管理C.信息管理D.操作系统管理5.操作系统是对()进行管理的软件。

A.软件B.硬件C.计算机资源(正确答案)D.应用程序6.采用多道程序设计技术可以提高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.()类型的操作系统允许在一台主机上同时连接多台终端,多个用户可以通过多台终端同时交互地使用计算机。

北京理工大学操作系统第一次作业

北京理工大学操作系统第一次作业

1.系统当前有4个进程P1、P2、P3、P4。

P1处于运行状态,P2、P3和P4均处于就绪状态。

如果进程P1正在执行一条I/O指令,请按照顺序列出此后在操作系统中发生的各项操作。

P1在做I/O,在P1由于I/O阻塞让出CPU;内核调度程序会在内核态根据调度算法找出下一个需要运行的进程,比如P2。

则P1的运行环境被保存,运行环境包括进程内存空间,寄存器状态,栈指针SP,页表,然后P2的运行环境被restore,然后P2运行。

接下来P3 P4都有可能被调度(如果P2的时间片已经用完),在这一过程中如果P1的i/o已经完成,在i/o会有中断发给内核,i/o中断处理程序会被调用告诉操作系统i/o已经完成。

2.试列举两个多线程程序设计的例子,其中一个示例为多线程的性能优于单线程的性能,另一个示例则为多线程的性能劣于单线程的性能。

多线程优于单线程
多优于单:一个用户刚刚在一个800页的文档的第一页上删掉一条语句,接着打算在第600页上修改一个错别字。

当用户键入一条命令通知字处理程序转到第600页时,字处理程序对该文档的前600页重新进行格式处理,以便确定第600页的第一行应该在哪里,此时计算机可能要拖延相当一段时间,才能显示出第600页。

单优于多:执行较小规模的顺序语句,双线程执行一次要比单线程执行两次慢。

(4) 对所有进程,哪一种调度算法的平均等待时间最小?
在一个使用多级反馈队列的系统中,一个只使用CPU的进程的执行时间为40秒。

如果第一个队列时间片为2,每级时间片增加5个时间单元,那么这个作业运行结束前会被中断多少次,结束时处于哪级队列?。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《第一次上机实验指导》
1、开始--》运行--》cmd (进入命令窗口)
2、在命令行(命令窗口中命令指示符>后)键入 help|more 会分屏列出DOS系统所有命令(按<空格键>显示下一屏)
DOS系统的基本命令有:
DIR—列出当前目录(文件夹)下的内容(文件和子目录)MD--建目录、RD--删目录、CD—进入目录(改变当前目录)TYPE—显示(文本)文件的内容
COPY—文件拷贝命令
Ctrl+C—终止命令的运行
HELP—帮助命令
HELP <命令名>--列出<命令名>所指示的命令的使用方法
例如:HELP COPY --列出COPY命令的使用方法(如下所示)
3、标准输入输出转向(标准输入转向、标准输出转向)
标准输入为从(终端)键盘(0号打开文件)输入。

标准输出为向(终端)显示器(1号打开文件)输出。

标准输入转向就是把标准输入改为从文件输入。

标准输出转向就是把标准输出改为向文件输出。

(特殊文件名代表设备,例如PRN代表打印机)
例如:
C>abcd<data123.txt
把abcd可执行文件的标准输入改为从文件data123.txt输入,“<”为标准输入转向符。

C>dir>dirabc.txt
把dir命令的标准输出改为向文件dirabc.txt输出,“>”为标准输出转向符,这样dirabc.txt文件中的内容就是当前目录的列表。

C>dir>PRN
把当前目录的列表在打印机输出。

4、管道:|(键盘上之间有口的两段竖线)
C>C1|C2 把命令C1的标准输出作为命令C2的标准输入
例如:
C>help|more
C>dir|sort 把当前目录的列表排序后在屏幕输出。

C>dir|sort>abc 把当前目录的列表排序后输出到文件abc中。

C>dir|sort>prn 把当前目录的列表排序后输出到打印机。

C>dir|sort|more 把当前目录的列表排序后分屏输出。

5、联机命令分类
1).按命令的功能分类:
a)系统访问命令(Login,Logout)
b)文件管理命令(cd,md,dir,copy等)
c)编辑、编译、链接和执行命令
d)维护管理命令
e)调试命令
f)其它
2).按照命令对应的程序代码的所属分类为:
a)内部命令(程序代码在命令语言解释程序中)
b)外部命令 (程序代码以可执行文件形式存放在磁盘上)
3)批处理命令(程序代码以命令文件的形式存放在磁盘上,命令文件由一系列命令行组成,每个命令可以是内部命令,外部命令,也可以是批处理命令,可以有条件转移,转向循环,位置参数等功能。

PC-DOS中的命令的优先顺序为内部命令,外部命令,批处理命令
6、DOS批处理
DOS系统和Windows系统中扩展名为bat的文件称为命令文件或者称为批处理文件,其中通常包含一系列DOS命令,例如
abc.bat:
copy c:\f1 d:\
copy c:\f2 d:\
copy c:\f3 d:\
启动该bat文件(在命令行输入abc或者abc.bat后回车,或者在Windows窗口双击abc.bat文件)后,系统将依次执行其中的各条命令,也就是“成批地”自动处理(把C盘根目录下的文件f1、f2、f3依次拷贝到D盘根目录下)。

另一个bat文件的例子为“批处理举例.BAT”,其中包含下列命令:c:
cd \ 修改目录
rd xyz3313 删除目录xyz3313
md xyz3313 在c盘创建目录xyz3313
cd xyz3313 修改xyz3313
md xyz13313 在xyz文件夹创建目录xyz13313
md xyz23313 在xyz文件夹创建目录xyz23313
echo -c:\xyz3313目录下的目录- >tree123.txt 建立文件夹tree123.txt,并将内容“xyz3313目录下的目录”添加入新建立的文件夹tree123.txt.中。

tree c:\xyz3313>>tree123.txt 将路径c:\xyz3313的所生成的目录文件保存在tree123.txt文本文档中。

echo -c:\xyz3313下的目录及文件- >>tree123.txt 建立文件夹tree123.txt,并将内容“xyz3313下的目录及文件”添加入新建立的文件夹tree123.txt.中。

tree c:\xyz3313>>tree123.txt /f /f显示每个文件夹中文件的名称。

将这个路径的目录文件保存在tree123.txt文本文档中。

type tree123.txt 显示文本文件的内容
copy tree123.txt d:\t123.txt 复制这个文件,并复制一份到D盘中。

请解释每条命令的功能,并说明最终结果(作为作业提交上来)。

运行包含上列命令的批处理文件(可以自己建立一个批处理文件,把上列命令拷贝进去),检查一下运行结果是否与你说明的结果一致。

标准输入为从(终端)键盘(0号打开文件)输入。

标准输出为向(终端)显示器(1号打开文件)输出。

标准输入转向就是把标准输入改为从文件输入。

标准输出转向就是把标准输出改为向文件输出。

(特殊文件名代表设备,例如PRN代表打印机)
例如:
C>abcd<data123.txt
把abcd可执行文件的标准输入改为从文件data123.txt输入,“<”为标准输入转向符。

C>dir>dirabc.txt
把dir命令的标准输出改为向文件dirabc.txt输出,“>”为标准输出转向符,这样dirabc.txt文件中的内容就是当前目录的列表。

C>dir>PRN
把当前目录的列表在打印机输出。

相关文档
最新文档