当前位置:文档之家› 计算机操作系统实验

计算机操作系统实验

计算机操作系统实验
计算机操作系统实验

操作系统实验报告

1.实验目的及要求

①了解什么是信号。

②熟悉LINUX系统中进程之间软中断通信的基本原理。

2.实验环境

VMware Workstation 12 Player

3.实验内容

①编写一段程序,使用系统调用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按ctrl+c 键),当捕捉到中断信号后,父进程用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后,分别输出下列信息后终止:Child process 1 is killed by parent!

Child process 2 is killed by parent!

父进程等待两个子进程终止后,输出以下信息后终止:

Parent process is killed!

②程序实例

#include

#include

#include

int wait_mark;

void waiting();

void stop();

void main()

{

int p1,p2;

signal(SIGINT,stop); //signal()初始位置while((p1=fork())==-1);

if(p1>0)

{ signal(SIGINT,stop);

while((p2=fork())==-1);

if(p2>0)

{

signal(SIGINT,stop);

wait_mark=1;

waiting();

kill(p1,10);

kill(p2,12);

wait();

wait();

printf("parent process is killed!\n");

exit(0);

}

else

{

wait_mark=1;

signal(12,stop);

waiting();

lockf(1,1,0);

printf("child process 1 is killed by parent!\n");

lockf(1,0,0);

exit(0);

}

}

else

{

wait_mark=1;

signal(10,stop);

waiting();

lockf(1,1,0);

printf("child process 2 is killed by parent!\n");

lockf(1,0,0);

exit(0);

}

}

void waiting()

{

while(wait_mark!=0);

}

void stop()

{

wait_mark=0;

}

③程序结果以及分析

分析:程序执行时,首先会先在父程序中创建一个子程序,然后父程序向子程序发送一个信号(kill方法),子进程在接收到父程序发送的信号后,会在控制台打印一句话,这时因为有两个子进程接收到信号,他们都要对控制台操作,这时会发生互斥操作。lockf(1,1,0);

printf("child process 2 is killed by parent!\n");

lockf(1,0,0);

lockf(1,1,0)和lockf(1,0,0)是分别加锁和解锁操作,再打印后子程

序会退出。

在程序中加入wait()是等待两个程序都结束了父程序在控制台打印输出。

exit(0)的作用是退出子程序。

④修改上面的程序,增加语句signal(SIGINT,SIG_IGN)和语句signal(SIGQUIT,SIG_IGN),再观察程序执行时屏幕上出现的现象,并分析其原因。

⑤示例程序

#include

#include

#include

void IntDelete();

void Int1();

void Int2();

int pid1,pid2;

int EndFlag=0;

void main()

{

int exitcode;

signal(SIGINT,SIG_IGN);

signal(SIGQUIT,SIG_IGN);

while((pid1=fork())==-1);

if(pid1==0)

{

signal(SIGUSR1,Int1);

signal(SIGINT,SIG_IGN);

pause();

}else{

while((pid2=fork())==-1);

if(pid2==0)

{

signal(SIGUSR2,Int2);

signal(SIGINT,SIG_IGN);

pause();

}else

{

signal(SIGINT,IntDelete);

waitpid(-1,&exitcode,0);

printf("parent process is killed \n");

}

}

}

void IntDelete()

{

kill(pid1,10);

kill(pid2,12);

EndFlag=1;

}

void Int1()

{

printf("child process 1 is killed by parent !\n");

exit(0);

}

void Int2()

{

printf("child process 2 is killed by parent !\n");

exit(0);

}

⑥程序分析

1.首先在主进程中创建一个子进程1,并将自定义中断信号SIGUSR1注册到函数Int1()上去,子进程1挂起并监听中断信

号,当接收到中断信号子进程1会打印一句话并退出;

2.父进程还会创建一个子进程2,并将自定义中断信号SIGUSR2注册到函数Int2()上去,子进程2挂起并监听中断信号,当接收到中断信号子进程2会打印一句话并退出;

3.父进程将中断信号SIGINT上注册到了IntDelete函数上,当父进程接收到中断后,会向两个子进程发送软中断信号,子进程接收到软中断信号后会执行响应的响应;

以下是截图:

4.实验问题

从执行结果上来看,按照程序执行的顺序是父进程先接收到中断信号那么为什么父进程反而最后打印输出?

这是因为pid_t waitpid(pid_t pid,int * status,int options);

pid=-1 等待任何子进程,相当于wait()。

5.实验总结

通过本次试验学习了解到进程如何接受中断信号,以及发出软中断信号,以及进程间的等待问题。

计算机操作系统实验课实验报告

实验报告 实验课程: 计算机操作系统学生姓名:XXX 学号:XXXX 专业班级:软件 2014年12月25日

目录 实验一熟悉Windows XP中的进程和线程.. 3实验二进程调度 (7) 实验三死锁避免—银行家算法的实现 (18) 实验四存储管理 (24)

实验一熟悉Windows XP中的进程和线程 一、实验名称 熟悉Windows XP中的进程和线程 二、实验目的 1、熟悉Windows中任务管理器的使用。 2、通过任务管理器识别操作系统中的进程和线程的相关信息。 3、掌握利用spy++.exe来察看Windows中各个任务的更详细信息。 三、实验结果分析 1、启动操作系统自带的任务管理器: 方法:直接按组合键Ctrl+Alt+Del,或者是在点击任务条上的“开始”“运行”,并输入“taskmgr.exe”。

2、调整任务管理器的“查看”中的相关设置,显示关于进程的以下各项信息,并 完成下表: 表一:统计进程的各项主要信息 3、启动办公软件“Word”,在任务管理器中找到该软件的登记,并将其结束掉。再

从任务管理器中分别找到下列程序:winlogon.exe、lsass.exe、csrss.exe、smss.exe,试着结束它们,观察到的反应是任务管理器无法结束进程, 原因是该系统是系统进程。 4、在任务管理器中找到进程“explorer.exe”,将之结束掉,并将桌面上你打开的所 有窗口最小化,看看你的计算机系统起来什么样的变化桌面上图标菜单都消失了、得到的结论explorer.exe是管理桌面图标的文件(说出explorer.exe进程的作用)。 5、运行“spy++.exe”应用软件,点击按钮“”,切换到进程显示栏上,查看进 程“explorer.exe”的各项信息,并填写下表: 进程:explorer.exe 中的各个线程

操作系统测验

操作系统课堂测验 一:名词解释: 操作系统控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口 二:填空 1.操作系统的基本特征是并发、共享和_虚拟____、异步 2.进程间相互合作的关系是_同步_____关系,而对资源争用的关系是___互斥______关系。若干进程 使用同一临界资源时必须互斥执行。 3.对信号量S每执行一次P操作,则信号量S的值就__减1_________。当S的值___小于0_____时,执行P操作的进程的状态就置为阻塞态,把相应的PCB连入该信号量队列的___末尾________ ,并且该进程____放弃_______ 处理机。 4. 从用户的源程序进入系统到相应程序在机器上运行,所经历的主要处理阶段有编译阶段, 连接阶段,___装入阶段______和___运行阶段______。 5.如果信号量的当前值为-5,则表示系统中在该信号量上有个等待进程。 三:判断对错并改正 1.进程控制块(PCB)是专为用户进程设置的私有数据结构,每个进程仅有一个PCB。 (×) 2简单地说,进程是程序的执行过程。因而,进程和程序是一一对应的。(×) 四:解答题 1.进程和程序的主要区别是什么? 进程是动态的,程序是静态的;进程具有并发性,而程序具有顺序性;进程具有独立性,是资源分配和调度的基本单位,而程序无此特性;进程和程序间没有一一对应关系;进程异步运行,会相互制约,程序不具备此特性。 2.如何利用信号量机制来实现多个进程对临界资源的互斥访问? 为了使多个进程能互斥访问某临界资源,只需为该资源设置一互斥信号量mutex,并设其初始值为1,用于表示临界资源未被访问,然后将各进程访问该资源的临界区CS置于wait(mutex)和signal(mutex)操作之间即可。这样,每个欲访问该临界资源的进程,在进入临界区之前,都要先对mutex执行wait 操作,若该资源此刻未被访问(mutex的值为1),本次wai操作必然成功,进程便可以进入自己的临界区。这时,若有其他进程也想进入自己的临界区,由于对mutex执行wait操作定会失败(mutex 的值已为-1),因而该进程被阻塞,从而保证了该临界资源能被互斥地访问。 五:选择 1. 操作系统的基本职能是(A ) A.控制和管理系统内各种资源,有效地组织多道程序的运行 B.提供用户界面,方便用户使用 C.提供方便的可视化编辑程序 D.提供功能强大的网络管理工具 2. 操作系统中引入“进程”概念的主要目的是( B )。 A.改善用户编程环境 B.描述程序动态执行过程的性质 C.使程序与计算过程一一对应 D.提高程序的运行速度 3某进程由于需要从磁盘上读入数据而处于阻塞状态。当系统完成了所需的读盘操作后,此时该进程的状态将( D ) A. 从就绪变为运行

计算机操作系统实训资料

计算机操作系统实验(训)指导书 学院:电子信息工程学院 班级:13计算机科学与技术本01班 学号: 姓名: 指导教师: 西安思源学院 电子信息工程学院

前言 操作系统是计算机科学与技术专业的一门重要的专业课,是一门实践性很强的技术课程。掌握操作系统原理、熟悉操作系统的使用是各层次计算机软硬件开发人员必不可少的基本技能。操作系统课程讲授理论原理比较容易,而如何指导学生进行实践则相对较难,导致学生不能深刻地理解操作系统的本质,也不能在实际中应用所学的操作系统理论知识及操作系统所提供的功能来解决实际问题。 本实验课程在操作系统原理课程教学中占有重要地位,目的是让学生及时掌握和巩固所学的基本原理和基础理论,加深理解。提高学生自适应能力,为将来使用和设计各类新的操作系统打下基础。 一般来说,学习操作系统分为以下几个层次: 1.学习并掌握操作系统的基本概念及原理,了解操作系统的实现机制。 2.掌握常用操作系统的使用、操作和维护,成为合格的系统管理员。 目前最常用的操作系统主要有UNIX、Linux、Windows等等。 3.通过分析操作系统源代码,掌握修改、编写操作系统的能力。开放源代码的操作系统Linux的出现为我们提供了机遇。 操作系统本身的构造十分复杂,如何在有效的时间内,使学生既能了解其实现原理又能对原理部分进行有效的实践,是操作系统教学一直在探索的内容。本实验课程以Windows和Linux操作系统为主要平台,从基本原理出发,通过几个实验,使学生能对操作系统的基本原理有更深入的了解,为将来从事操作系统方面的研究工作打下一定的基础。

目录 实验一Windows的用户界面 (4) 实验二Windows2003的任务与进程管理器 (6) 实验三Linux使用环境 (10) 实验四Linux进程管理、内存管理、设备管理 (13) 实验五Windows2003内存管理 (16) 实验六目录和文件管理 (19) 实验七用户与组群管理 (21)

《计算机操作系统》第01章在线测试

《计算机操作系统》第01章在线测试 《计算机操作系统》第01章在线测试剩余时间:51:06 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、批处理系统的主要缺点是()。 A、没有交互性 B、系统资源利用率不高 C、系统吞吐率小 D、不具备并行性 2、操作系统的功能是进行处理机管理、()管理、存储管理、设备管理和文件管理。 A、硬件 B、软件 C、作业 D、进程 3、操作系统的功能不包括()。 A、管理CPU B、分配内存 C、提供磁盘读写系统调用 D、提供类似photoshop的图片处理功能 4、进程由执行变为阻塞是()。 A、进程同步和互斥的管理工作 B、处理器调度的管理工作 C、进程控制的管理工作 D、进程通信和死锁 5、层次结构软件系统()。 A、不是由模块组成的 B、同层模块之间可以相互调用 C、不同层模块之间可以相互调用 D、不同层模块之间单向调用 第二题、多项选择题(每题2分,5道题共10分) 1、操作系统管理的资源包括()。 A、CPU B、程序 C、数据

D、指令 2、操作系统具有()的功能。 A、超越一切程序 B、提供图形接口或命令行接口 C、检测硬件错误 D、启动和停止程序执行 3、操作系统的目标包括()。 A、扩充机器功能 B、方便用户使用计算机资源 C、管理系统资源 D、提高系统效率 4、操作系统的共享性是指()。 A、操作系统可以被多个程序所共享 B、操作系统管理的资源可以被多个程序所共享 C、操作系统可以共享系统资源 D、多个程序可以共享系统资源 5、处理器管理功能包括()。 A、进程创建、运行和停止 B、作业调度 C、进程同步 D、驱动调度 第三题、判断题(每题1分,5道题共5分) 1、计算机上配置操作系统实现了资源管理的自动化。 正确错误2、操作系统是为运行程序服务的。

计算机操作系统内存分配实验报告记录

计算机操作系统内存分配实验报告记录

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

一、实验目的 熟悉主存的分配与回收。理解在不同的存储管理方式下,如何实现主存空间的分配与回收。掌握动态分区分配方式中的数据结构和分配算法及动态分区存储管理方式及其实现过程。 二、实验内容和要求 主存的分配和回收的实现是与主存储器的管理方式有关的。所谓分配,就是解决多道作业或多进程如何共享主存空间的问题。所谓回收,就是当作业运行完成时将作业或进程所占的主存空间归还给系统。 可变分区管理是指在处理作业过程中建立分区,使分区大小正好适合作业的需求,并且分区个数是可以调整的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入,作业等待。随着作业的装入、完成,主存空间被分成许多大大小小的分区,有的分区被作业占用,而有的分区是空闲的。 实验要求使用可变分区存储管理方式,分区分配中所用的数据结构采用空闲分区表和空闲分区链来进行,分区分配中所用的算法采用首次适应算法、最佳适应算法、最差适应算法三种算法来实现主存的分配与回收。同时,要求设计一个实用友好的用户界面,并显示分配与回收的过程。同时要求设计一个实用友好的用户界面,并显示分配与回收的过程。 三、实验主要仪器设备和材料 实验环境 硬件环境:PC或兼容机 软件环境:VC++ 6.0 四、实验原理及设计分析 某系统采用可变分区存储管理,在系统运行当然开始,假设初始状态下,可用的内存空间为640KB,存储器区被分为操作系统分区(40KB)和可给用户的空间区(600KB)。 (作业1 申请130KB、作业2 申请60KB、作业3 申请100KB 、作业2 释放 60KB 、作业4 申请 200KB、作业3释放100KB、作业1 释放130KB 、作业5申请140KB 、作业6申请60KB 、作业7申请50KB) 当作业1进入内存后,分给作业1(130KB),随着作业1、2、3的进入,分别分配60KB、100KB,经过一段时间的运行后,作业2运行完毕,释放所占内存。此时,作业4进入系统,要求分配200KB内存。作业3、1运行完毕,释放所占内存。此时又有作业5申请140KB,作业6申请60KB,作业7申请50KB。为它们进行主存分配和回收。 1、采用可变分区存储管理,使用空闲分区链实现主存分配和回收。 空闲分区链:使用链指针把所有的空闲分区链成一条链,为了实现对空闲分区的分配和链接,在每个分区的起始部分设置状态位、分区的大小和链接各个分区的前向指针,由状态位指示该分区是否分配出去了;同时,在分区尾部还设置有一后向指针,用来链接后面的分区;分区中间部分是用来存放作业的空闲内存空间,当该分区分配出去后,状态位就由“0”置为“1”。 设置一个内存空闲分区链,内存空间分区通过空闲分区链来管理,在进行内存分配时,系统优先使用空闲低端的空间。 设计一个空闲分区说明链,设计一个某时刻主存空间占用情况表,作为主存当前使用基础。初始化空间区和已分配区说明链的值,设计作业申请队列以及作业完成后释放顺序,实现主存的分配和回收。要求每次分配和回收后显示出空闲内存分区链的情况。把空闲区说明

计算机操作系统综合设计实验报告实验一

计算机操作系统综合设计 实验一 实验名称:进程创建模拟实现 实验类型:验证型 实验环境: win7 vc++6.0 指导老师: 专业班级: 姓名: 学号: 联系电话: 实验地点:东六E507 实验日期:2017 年 10 月 10 日 实验报告日期:2017 年 10 月 10 日 实验成绩:

一、实验目的 1)理解进程创建相关理论; 2)掌握进程创建方法; 3)掌握进程相关数据结构。 二、实验内容 windows 7 Visual C++ 6.0 三、实验步骤 1、实验内容 1)输入给定代码; 2)进行功能测试并得出正确结果。 2、实验步骤 1)输入代码 A、打开 Visual C++ 6.0 ; B、新建 c++ 文件,创建basic.h 头文件,并且创建 main.cpp 2)进行功能测试并得出正确结果 A 、编译、运行main.cpp B、输入测试数据 创建10个进程;创建进程树中4层以上的数型结构 结构如图所示:。

createpc 创建进程命令。 参数: 1 pid(进程id)、 2 ppid(父进程id)、3 prio(优先级)。 示例:createpc(2,1,2) 。创建一个进程,其进程号为2,父进程号为1,优先级为2 3)输入创建进程代码及运行截图 4)显示创建的进程

3、画出createpc函数程序流程图 分析createpc函数的代码,画出如下流程图:

四、实验总结 1、实验思考 (1)进程创建的核心内容是什么? 答: 1)申请空白PCB 2)为新进程分配资源 3)初始化进程控制块 4)将新进程插入到就绪队列 (2)该设计和实际的操作系统进程创建相比,缺少了哪些步骤? 答:只是模拟的创建,并没有分配资源 2、个人总结 通过这次课程设计,加深了对操作系统的认识,了解了操作系统中进程创建的过程,对进程创建有了深入的了解,并能够用高 级语言进行模拟演示。一分耕耘,一分收获,这次的课程设计让 我受益匪浅。虽然自己所做的很少也不够完善,但毕竟也是努 力的结果。另外,使我体会最深的是:任何一门知识的掌握, 仅靠学习理论知识是远远不够的,要与实际动手操作相结合才能 达到功效。

计算机操作系统实验四

实验三进程与线程 问题: 进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位,具有动态性、并发性、独立性、异步性和交互性。然而程序是静态的,并且进程与程序的组成不同,进程=程序+数据+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、理解进程的独立空间的实验内容及步骤

实验报告计算机操作系统-Windows.pdf

班级 178 学号姓名 【实验目的】 1. 掌握Windows 7的基本操作; 2. 熟练掌握资源管理器、文件与文件夹的管理方法 3. Windows 7控制面板的使用 【实验内容和步骤】 一.Windows7基本操作和文件管理 完成实践教程第18页中的实验并回答下列问题。 1.如何新建文件或文件夹? 在桌面空白处单击鼠标右键,选择“新建”--“文件夹”,键入新文件夹的名称,然后按 ENTER 键。 2.如何选定多个相邻文件或文件夹?如何选定多个不相邻文件和文件夹?如何选中全部文件和文件夹? 选定多个相邻文件的操作是:单击第一个文件,然后按住Shift 键,再单击最后一个文件 Shift 键,就是Ctrl 键上面那个。 选定多个不相邻文件操作是:单击第一个文件,然后按住Ctrl 键的同时,单击其他待选定的文件 Ctrl 键,就是键盘最左下角那个。 如何选中全部文件和文件夹:ctrl+A 3.试列举对文件/文件夹进行复制和移动的方法? 第一种方法:可以用鼠标右键进行操作。 第二种:可用ctrl+c 进行复制;ctrl+x 进行移动(也就是剪切)ctrl+v进行粘贴 4.如何对已删除的文件进行“还原”?

如果没清空回收站,在回收站里还原就行。 5.如何对按照修改日期搜索文件或文件夹? 我的电脑右键选搜索,打开搜索界面,在搜索选项里按日期,选中并输入日期 6.如何“隐藏”文件/文件夹?如何显示被“隐藏”起来的文件/文件夹图标? 把想隐藏文件的文件夹或文件,打开文件夹属性,隐藏打钩或去掉即可以选择这个文件是否隐藏或显示 打开任意的文件夹的工具选项卡的文件夹选项——查看选项卡——隐藏文件和文件夹上面有2个选择,选择显示隐藏文件夹即可看到隐藏文件 二.Windows7系统设置 完成实践教程第23页中的实验并回答下列问题。 1.如何改变桌面的背景、屏幕的分辨率并设置屏幕保护程序。 开始—控制面板—外观和个性化—个性化,然后进行桌面背景、窗口颜色、屏幕保护调整。 2.如何修改计算机的系统日期和时间。 (1)点开始--运行回车--打开组策略。 (2)在组策略管理器中选择“计算机配置”--windows设置--安全设置--本地策略--用户权利指派--更改系统时间。 (3)双击打开“更新系统时间配置”属性对话框,把里 面用户名全删除,点确定。 (4)重启计算机 3.如何为计算机添加“简体中文双拼”输入法。 可以右击输入法图标,选“设置”,“添加”,找到双拼输入法后单击“确定”就可以使用了。

计算机操作系统期末测试题及答案解析(两套)

操作系统期末试题1 一、单项选择题(每题2分,共20分) 1.在操作系统中,进程的最基本的特征是( A )。 A. 动态性和并发性 B.顺序性和可再现性 C.与程序的对应性 D.执行过程的封闭性 2.为了使系统中各部分资源得到均衡使用,就必须选择对资源需求不同的作业进行合理搭配。这项工作是由( A )完成的。 A.作业调度 B. 进程调度 C.用户自己D.管理人员 3.虚拟存储器给用户提供了特大的地址空间。实际上它是( C )。 A. 扩大物理内存容量 B.扩大物理外存容量 C. 扩大逻辑内存容量 D.扩大逻辑外存容量 4.引入缓冲技术的主要目的是( C )。 A. 改善用户编程环境 B.提高CPU的处理速度 C.提高CPU与设备之间的并行程度 D.降低计算机的硬件成本 5.在微内核结构的现代操作系统中,进程( A )。 A. 只是资源分配的单位 B.只是调度运行的单位 C.既是资源分配的单位,又是调度运行的单位 D.失去作用 6. (A)没有多道程序设计的特点。 A.dos B.unix B.windows D.os/2 7. 下列四个操作系统中,是分时系统的为(C)。 A.cp/m B.ms-dos C.unix D.windows nt 8. 在分时系统中,时间片一定,(B),响应时间越长。 A.内存越多 B.用户数越多 C.后备队列 D.用户数越少 9. 用户要在程序一级获得系统帮助,必须通过(D)。 A.进程调度 B.作业调度 C.键盘命令 D.系统调用 10. 操作系统是一组(C)。 A.文件管理程序 B.中断处理程序 C.资源管理程序 D.设备管理程序 二、判断题(选择你认为正确的叙述划√,认为错误的划×并说明原因。每题2分,共10分)

操作系统原理实验四

实验4 进程控制 1、实验目的 (1)通过对WindowsXP进行编程,来熟悉和了解系统。 (2)通过分析程序,来了解进程的创建、终止。 2、实验工具 (1)一台WindowsXP操作系统的计算机。 (2)计算机装有Microsoft Visual Studio C++6.0专业版或企业版。 3、预备知识 (3)·CreateProcess()调用:创建一个进程。 (4)·ExitProcess()调用:终止一个进程。 4、实验编程 (1)编程一利用CreateProcess()函数创建一个子进程并且装入画图程序(mspaint.exe)。阅读该程序,完成实验任务。源程序如下: # include < stdio.h > # include < windows.h > int main(VOID) ﹛STARTUPINFO si; PROCESS INFORMA TION pi; ZeroMemory(&si,sizeof(si)); Si.cb=sizeof(si); ZeroMemory(&pi,sizeof(pi)); if(!CreateProcess(NULL, “c: \ WINDOWS\system32\ mspaint.exe”, NULL, NULL, FALSE, 0, NULL, NULL, &si,&pi)) ﹛fprintf(stderr,”Creat Process Failed”); return—1; ﹜ WaitForSingleObject(pi.hProcess,INFINITE); Printf(“child Complete”); CloseHandle(pi.hProcess); CloseHandle(pi hThread); ﹜

《计算机操作系统》实验指导书

《计算机操作系统》 实验指导书 (适合于计算机科学与技术专业) 湖南工业大学计算机与通信学院 二O一四年十月

前言 计算机操作系统是计算机科学与技术专业的主要专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。计算机操作系统的实验目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握操作系统的基本原理,加深对操作系统基本方法的理解,加深对课堂知识的理解,为学生综合运用所学知识,在Linux环境下调用一些常用的函数编写功能较简单的程序来实现操作系统的基本方法、并在实践应用方面打下一定基础。要求学生在实验指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个实验解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,并且能够进行简单分析和判断;能够熟练使用Linux用户界面;掌握操作系统中进程的概念和控制方法;了解进程的并发,进程之间的通信方式,了解虚拟存储管理的基本思想。同时培养学生进行分析问题、解决问题的能力;培养学生完成实验分析、实验方法、实验操作与测试、实验过程的观察、理解和归纳能力。 为了收到良好的实验效果,编写了这本实验指导书。在指导书中,每一个实验均按照该课程实验大纲的要求编写,力求紧扣理论知识点、突出设计方法、明确设计思路,通过多种形式完成实验任务,最终引导学生有目的、有方向地完成实验任务,得出实验结果。任课教师在实验前对实验任务进行一定的分析和讲解,要求学生按照每一个实验的具体要求提前完成准备工作,如:查找资料、设计程序、完成程序、写出预习报告等,做到有准备地上机。进行实验时,指导教师应检查学生的预习情况,并对调试过程给予积极指导。实验完毕后,学生应根据实验数据及结果,完成实验报告,由学习委员统一收齐后交指导教师审阅评定。 实验成绩考核: 实验成绩占计算机操作系统课程总评成绩的20%。指导教师每次实验对学生进行出勤考核,对实验效果作记录,并及时批改实验报告,综合评定每一次的实验成绩,在学期终了以平均成绩作为该生的实验成绩。有以下情形之一者,实验成绩为不及格: 1.迟到、早退、无故缺勤总共3次及以上者; 2.未按时完成实验达3次及以上者; 3.缺交实验报告2次及以上者。

四川大学计算机操作系统第四实验报告

实验报告 (学生打印后提交) 实验名称:作业调度系统 实验时间: 2015 年 6 月 4 日 实验人员:________(姓名)_____(学号)______(年级) 实验目的: ?理解操作系统中调度的概念和调度算法。 ?学习Linux下进程控制以及进程之间通信的知识。 ?理解在操作系统中作业是如何被调度的,如何协调和控制各个作业对CPU的使用 实验环境: linux 实验步骤: 1. 1、调用vi编辑器修改job.h文件,为命名管道FIFO设置正确的路径,修改语句:#define FIFO "/home/student/SVRFIFO" 2. 修改scheduler.c文件,添加作业的打印信息,即修改函数do_stat,要求再输出作业名称、当 前优先级、默认优先级。 3. 在printf( “JID\tPID\tOWNER\tRUNTIME\tWAITTIME\tCREATTIME\t\tSTATE\n”);语句 中添加JOBNAME、CURPRI、DEFPRI。 4. 接下来的两个输出语句根据表头修改,注意printf语句的输出格式,输出的信息内容参照 jobinfo结构体。 5、用gcc分别编译连接作业调度程序、三个命令程序。 6、在一个控制台窗口中运行作业调度程序作为服务端。 7、提交一个运行时间超过100毫秒的作业(要求提供源程序),并编译连接。 8.再打开一个窗口登录服务器作为客户端,在其中运行作业控制命令(提交作业、删除作业、查看信息), 在服务端观察调度情况,分析所提交作业的执行情况。 实验陈述: 1、基础知识: ?说明进程与程序的区别:程序是静态的指令集合,不占用系统的运行资源,可以长久保存在 磁盘。进程是进程实体(程序、数据和进程控制块构成)的运行过程,是系统进行资源分配和 调度的一个独立单位。进程执行程序,但进程与程序之间不是一一对应的。通过多次运行,同一 程序可以对应多个进程;通过调用关系,一个进程可以包含多个程序。 ?说明进程与作业的区别:作业是用户一个事务处理过程中要求计算机系统所做工作 的集合,作业可以包含几个进程。 ?说明作业调度与进程调度的区别:作业调度是按照一定的原则从外存的作业后备队 列中选择作业调入内存,并为其分配资源,创建相应的进程,然后进入就绪队列。进 程调度是按照某种策略或方法从就绪队列中选择进程,将处理机分配给它。 2、实验知识 ?本实验作业有几种状态READY:作业准备就绪可以运行。RUNNING:作业正在运行DONE: 作业已经运行结束,可以退出。有这三种状态,但只用到前两种。 ?

计算机操作系统 实验报告

操作系统实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 成绩: 2014年 1 月 1 日

实验一线程的状态和转换(5分) 1 实验目的和要求 目的:熟悉线程的状态及其转换,理解线程状态转换与线程调度的关系。 要求: (1)跟踪调试EOS线程在各种状态间的转换过程,分析EOS中线程状态及其转换的相关源代码; (2)修改EOS的源代码,为线程增加挂起状态。 2 完成的实验内容 2.1 EOS线程状态转换过程的跟踪与源代码分析 (分析EOS中线程状态及其转换的核心源代码,说明EOS定义的线程状态以及状态转换的实现方法;给出在本部分实验过程中完成的主要工作,包括调试、跟踪与思考等) 1.EOS 准备了一个控制台命令“loop ”,这个命令的命令函数是 ke/sysproc.c 文件中的ConsoleCmdLoop 函数(第797行,在此函数中使用 LoopThreadFunction 函数(第755 行)创建了一个优先级为 8 的线程(后面简称为“loop 线程”),该线程会在控制台中不停的(死循环)输出该线程的ID和执行计数,执行计数会不停的增长以表示该线程在不停的运行。loop命令执行的效果可以参见下图: 2. 线程由阻塞状态进入就绪状态 (1)在虚拟机窗口中按下一次空格键。 (2)此时EOS会在PspUnwaitThread函数中的断点处中断。在“调试”菜单中选择“快速监视”,在快速监视对话框的表达式编辑框中输入表达式“*Thread”,然后点击“重新计算”按钮,即可查看线程控制块(TCB)中的信息。其中State域的值为3(Waiting),双向链表项StateListEntry的Next和Prev指针的值都不为0,说明这个线程还处于阻塞状态,并在某个同步对象的等待队列中;StartAddr域的值为IopConsoleDispatchThread,说明这个线程就是控制台派遣线程。 (3)关闭快速监视对话框,激活“调用堆栈”窗口。根据当前的调用堆栈,可以看到是由键盘中断服务程序(KdbIsr)进入的。当按下空格键后,就会发生键盘中断,从而触发键盘中断服务程序。在该服务程序的最后中会唤醒控制台派遣线程,将键盘事件派遣到活动的控制台。 (4)在“调用堆栈”窗口中双击PspWakeThread函数对应的堆栈项。可以看到在此函数中连续调用了PspUnwaitThread函数和PspReadyThread函数,从而使处于阻塞状态的控制台派遣线程进入就绪状态。 (5)在“调用堆栈”窗口中双击PspUnwaitThread函数对应的堆栈项,先来看看此函数是如何改变线程状态的。按F10单步调试直到此函数的最后,然后再从快速监视对

计算机操作系统实验-文件管理

哈尔滨工业大学计算机科学与技术学院 实验报告 课程名称:操作系统 课程类型:必修 实验项目名称:文件管理 实验题目:设计一个多用户的文件系统 班级:实验学院一班 学号:6040310110 姓名:张元竞 设计成绩报告成绩指导老师

一、实验目的 随着社会信息量的极大增长,要求计算机处理的信息与日俱增,涉及到社会生活的各个方面。因此,文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、实验要求及实验环境 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write等命令。 所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系)

计算机操作系统实验

操作系统实验报告 1.实验目的及要求 ①了解什么是信号。 ②熟悉LINUX系统中进程之间软中断通信的基本原理。 2.实验环境 VMware Workstation 12 Player 3.实验内容 ①编写一段程序,使用系统调用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按ctrl+c 键),当捕捉到中断信号后,父进程用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后,分别输出下列信息后终止:Child process 1 is killed by parent! Child process 2 is killed by parent! 父进程等待两个子进程终止后,输出以下信息后终止: Parent process is killed! ②程序实例 #include #include #include

int wait_mark; void waiting(); void stop(); void main() { int p1,p2; signal(SIGINT,stop); //signal()初始位置while((p1=fork())==-1); if(p1>0) { signal(SIGINT,stop); while((p2=fork())==-1); if(p2>0) { signal(SIGINT,stop); wait_mark=1; waiting(); kill(p1,10); kill(p2,12); wait(); wait(); printf("parent process is killed!\n"); exit(0);

计算机操作系统实验四

实验四:文件系统<一> [背景知识] 1. 选择文件系统 文件系统决定了操作系统能够对磁盘进行的处理。Windows xp 支持的文件系统主要有: 1) 文件分配表 (File Allocation Table ,FAT) 文件系统 (FAT16) 2) 保护模式FAT 文件系统 (FAT32) 3) Windows NT 文件系统 (NTFS) FAT 文件系统是早期文件系统之一,也是MS-DOS 使用的原始文件系统。它将文件信息储存在位于卷标开头处的文件分配表中,并保存两份文件分配表,以防其中的一个遭到破坏,见图7-1所示。 FAT 文件系统最大的优点是MS-DOS 、Windows 9x 甚至OS/2都能访问FAT 卷标;而其最大的弱点是随着FAT 卷标尺寸的增长,最小的簇尺寸也随之增长。对于大于512MB 的硬盘而言,最小的簇尺寸为16KB ;对于大于2GB 的硬盘,最小的簇尺寸为64KB 。这就导致磁盘空间的极大浪费,因为一个文件必须占用整数个簇。因此,1KB 的文件在2GB 的硬盘上将占用64KB 的磁盘空间。FAT 文件系统不支持尺寸大于4GB 的卷标。 图7-1 FAT 文件系统的结构 FAT32文件系统通过提供长文件名的支持来扩展FAT 文件系统,并与FAT16兼容。FA T (16和32) 文件系统是支持可移动媒体 (例如软盘) 上的惟一的文件系统。 Windows NT 文件系统 (NTFS) 包括了FAT 文件系统的所有功能,同时又提供了对高级文件系统特征 (例如安全模式、压缩和加密) 的支持。它是为在大磁盘上有效地完成文件操作而设计的。与FAT 和保护模式FAT 文件系统不同,它的最小簇尺寸不超过4KB 。但是,NTFS 卷标只能为Windows NT 、2000和XP 操作系统所访问。 Windows xp 提供的新特征 (NTFS 5.0) 使文件系统更安全、更可靠,比以往的Windows 版本更好地支持分布式计算。 此外,Windows xp 支持的文件系统还有: CDFS :光盘文件系统 (Compact Disc File System) 用于光盘的文件存储。 UDF :通用磁盘格式 (Universal Disk Format) 用于DVD 的文件存储。 在文件系统中,FAT16、FAT32和NTFS 这三个文件系统对磁盘子系统的性能影响最大。而事实上,选择NTFS 之外的任何文件系统都只有两个理由,即: 1) 可双引导系统 2) 小于400MB 的卷 如果系统不是这两种情况,那么NTFS 就应该是所选择的文件系统,NTFS 将提供更好的性能、可靠性和安全性。 2. EFS 加密文件系统 EFS (Encrypting File System) 实际上是NTFS 的一个特性, 它提供了核心文件加密技术,

操作系统实验报告_实验四

实验四:进程管理(二) 实验内容: 1.编写一个程序,打印进程的如下信息:进程标识符,父进程标识符,真实用户ID,有效用户ID,真实用户组ID,有效用户组ID。并分析真实用户ID和有效用户ID的区别。 源代码及结果: 真实用户ID和有效用户ID的区别: 真实用户ID:这个ID就是我们登陆unix系统时的身份ID。 有效用户ID:定义了操作者的权限。有效用户ID是进程的属性,决定了该进程对文件的访问权限。 2.阅读如下程序,编译并运行,分析进程执行过程的时间消耗(总共消耗的时间和CPU 消耗的时间),并解释执行结果。再编写一个计算密集型的程序替代grep,比较两次时间的花销。注释程序主要语句。 /* process using time */ #include #include #include #include #include void time_print(char *,clock_t);

int main(void){ //取得进程运行相关的时间 clock_t start,end; struct tms t_start,t_end; start = times(&t_start); system(“grep the /usr/doc/*/* > /dev/null 2> /dev/null”); /*command >/dev/null的作用是将是command命令的标准输出丢弃,而标准错误输出还是在屏幕上。一般来讲标准输出和标准错误输出都是屏幕,因此错误信息还是会在屏幕上输出。>/dev/null 2> /dev/null 标准输出与标准错误输出都会被丢弃*/ // 0 1 2 标准输入标准输出错误输出 // > 将信息放到该文件null中 end=times(&t_end); time_print(“elapsed”,end-start); puts(“parent times”); time_print(“\tuser CP U”,t_end.tms_utime); time_print(“\tsys CPU”,t_end.tms_stime); puts(“child times”); time_print(“\tuser CPU”,t_end.tms_cutime); time_print(“\tsys CPU”,t_end.tms_cstime); exit(EXIT_SUCCESS); } void time_print(char *str, clock_t time) { long tps = sysconf(_SC_CLK_TCK); /*函数sysconf()的作用为将时钟滴答数转化为秒数,_SC_CLK_TCK 为定义每秒钟

计算机操作系统(第三版)考试试题及答案

第一章操作系统引论 (一)单项选择题 1、操作系统目的是提供一个供其他程序执行的良好环境,因此它必须使计算机( ) A.使用方便 B.高效工作 C.合理使用资源 D.使用方便并高效工作 2、允许多个用户以交互方式使用计算机的操作系统是( )。 A.分时操作系统 B.批处理单道系统 C.实时操作系统 D.批处理多道系统 3、下列系统中( )是实时系统。 A.计算机激光照排系统 B.办公自动化系统 C.化学反应堆控制系统 D.计算机辅助设计系统 4、操作系统是一种系统软件,它( )。 A.控制程序的执行 B.管理计算机系统的资源C.方便用户使用计算机 D.管理计算机系统的资源和控制程序的执行5、计算机系统把进行( )和控制程序执行的功能集中组成一种软件,称为操作系统 A.CPU管理B.作业管理 C.资源管理D.设备管理 6、批处理操作系统提高了计算机系统的工作效率,但( )。 A.不能自动选择作业执行 B.无法协调资源分配 C.不能缩短作业执行时间 D.在作业执行时用户不能直接干预 7、分时操作系统适用于( )。 A.控制生产流水线B.调试运行程序C.大量的数据处理D.多个计算机资源共享 8、在批处理兼分时的系统中,对( )应该及时响应,使用户满意。 A.批量作业B.前台作业C.后台作业D.网络通信 9、实时操作系统对可靠性和安全性要求极高,它( )。 A.十分注重系统资源的利用率B.不强调响应速度C.不强求系统资源的利用率 D.不必向用户反馈信息 (二)填空题 1、计算机系统是按用户要求接收和存储信息,自动进行_______并输出结果信息的系统。 2、计算机系统把进行_______和控制程序执行的功能集中组成一种软件称为操作系统。 3、操作系统使用户合理_______,防止各用户间相互干扰。 4、使计算机系统使用方便和_______是操作系统的两个主要设计目标。 5、批处理操作系统、_______和实时操作系统是基本的操作系统。 6、在多道操作系统控制下,允许多个作业同时装入_______,使中央处理器轮流地执行各个作业。 7、批处理操作系统提高了计算机系统的_______,但在作业执行时用户不能直接干预作业的执行。 8、在分时系统中,每个终端用户每次可以使用一个由_______规定的CPU时间。 9、分时系统具有同时性、独立性、及时性和_______等特点。 10、在批处理兼分时系统中,往往把由分时系统控制的作业称为_____作业,把由批处理系统控制的作业称为_____作业。 11、实时系统要求有_______,不强求系统资源的利用率。 12、操作系统的资源管理功能有:处理器管理、_______、文件管理、设备管理和作业管理。 13、_______为用户合理地分配处理器时间.尽可能地使处理器处于忙状态,提高处理器的工作效率。 (三)简答题 1、计算机系统的资源包括哪些? 2、简述操作系统的定义。 3、为计算机设计操作系统要达到什么目的?设计时应考虑哪些目标? 4、从操作系统提供的服务出发,操作系统可分哪几类? 5.何谓批处理操作系统? 6.为什么说批处理多道系统能极大地提高计算机系统的工作效率? 7、分时系统如何使各终端用户感到好像自己独占一台计算机? 8、简述操作系统的五大功能。 第二章-1 进程管理 (一)单项选择题 1.临界区是指( )。 A.并发进程中用于实现进程互斥的程序段B.并发进程中用于实现进程同步的程序段 C.并发进程中用户实现进程通信的程序段D.并发进程中与共享变量有关的程序段

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