操作系统实验题目2

合集下载

操作系统实验报告(全)

操作系统实验报告(全)

操作系统实验报告书院系名称:电子工程学院电子指导教师:班级:学号:学生姓名:实验题目一:进程一、实验目的通过观察、分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在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、在操作系统中,进程与线程的主要区别是什么?A. 进程是资源分配的基本单位,线程是处理器调度的基本单位B. 进程和线程都是资源分配和处理器调度的基本单位C. 线程是资源分配的基本单位,进程是处理器调度的基本单位D. 进程和线程都不涉及资源分配问题(答案:A)2、以下哪种调度算法可能会导致饥饿问题?A. 先来先服务(FCFS)B. 短作业优先(SJF)C. 时间片轮转(Round Robin)D. 优先级调度(非抢占式)(答案:B)3、在操作系统的存储管理中,分段存储管理方式的主要目的是?A. 提高内存利用率B. 实现内存保护C. 方便用户编程D. 提高程序运行速度(答案:C)4、关于死锁,以下哪个说法是正确的?A. 死锁是指多个进程因竞争资源而无限期等待的现象B. 死锁只可能发生在多道批处理系统中C. 死锁发生时,系统中一定存在多个进程同时处于就绪状态D. 预防死锁的方法之一是破坏“请求和保持”条件,即要求进程一次性申请所有所需资源(答案:A,注:同时D也是预防死锁的一种方法,但题目要求选择正确说法,A更直接描述了死锁的定义)5、在操作系统的文件系统中,目录结构的主要作用是?A. 实现文件的按名存取B. 提高文件存储的效率C. 增强文件系统的安全性D. 便于用户对文件进行备份(答案:A)6、下列哪一项不是虚拟内存技术的优点?A. 扩大内存容量B. 提高内存利用率C. 简化内存管理D. 加快程序运行速度(在某些情况下可能因换页开销而减慢)(答案:D)7、在操作系统的设备管理中,缓冲区的设置主要是为了?A. 提高设备利用率B. 缓和CPU与I/O设备之间速度不匹配的矛盾C. 实现设备的即插即用D. 减少I/O操作的次数(答案:B)8、关于操作系统的中断机制,以下哪个说法是错误的?A. 中断是由硬件或软件发出的,用于请求CPU处理的事件B. 中断处理过程中,CPU会暂停当前程序的执行,转而执行中断处理程序C. 中断向量表是存储中断处理程序入口地址的表D. 在所有情况下,中断处理程序的执行优先级都高于当前正在运行的程序(答案:D,注:中断处理程序的优先级通常较高,但并非在所有情况下都绝对高于所有正在运行的程序,特别是在某些实时系统中可能有更复杂的优先级策略)。

S操作系统实验报告(2)

S操作系统实验报告(2)

DOS操作系统实验报告(2)班级_____________姓名_____________学号_____________一、写出下列命令(设当前目录为C:\):1、将c盘windows目录中主名长度为1-4个字符的所有文件拷贝到d盘中的aa 目录中。

(aa目录自建)C:\>md d:\aaC:\>copy windows\????.* d:\aa2、将d盘aa目录中以s字母开头的文件复制到d:\ss目录下(ss自建)C:\>md d:\ssC:\>copy d:\aa\s* d:\ss3、将c盘windows\system下的所有dll文件复制到d:\bak下,扩展名改成bak (bak自建)C:\>md d:\bakC:\>copy windows\system\*.dll d:\bak\*.bak4、将c盘windows目录下主文件名以n结尾,扩展名以l开头的文件拷到d:\nl 目录下(nl自建)C:\>md d:\nlC:\>copy windows\*n.l* d:\nl5、将d:\nl目录下的所有文件拷贝到d:\nn上,文件以nnn为扩展名(nn自建)C:\>md d:\nnC:\>copy d:\nl\*.* d:\nn\*.nnn6、将c盘chenhu2目录下的所有文件拷到d :\chenhu2目录下(chenhu2自建)C:\>md d:\chenhu2C:\>copy c:\chenhu2 d:\chenhu27、将D:\chenhu2目录下的chenhu4.txt文件改名成chenhu5.txtC:\>ren d:\chenhu2\chenhu4.txt chenhu5.txt8、将D:\chenhu2目录下的chenweb.txt文件改名成chenweb.exeC:\>ren d:\chenhu2\chenweb.txt chenweb.exe9、将D:\chenhu2下的bmp文件改成同名的jpg文件C:\>ren d:\chenhu2\*.bmp *.jpg10、把D:\ss目录名改成setC:\>ren d:\ss set11、删除D:\aa目录下以s开头的文件C:\>del d:\aa\s*12、删除D:\bak目录下以a开头的主文件名共6个字符的文件C:\>del d:\bak\a?????.*13、删除D:\chenhu2目录下所有扩展名为txt的文件C:\>del d:\chenhu2\*.txt14、删除D盘上的nn目录C:\>del d:\nnC:\>rd d:\nn15、删除D盘上的set目录C:\>del d:\setC:\>rd d:\set16、将C:\windows下SchedLgU.Txt文件的内容显示出来C:\>type windows\schedlgu.txt17、将C:\windows下OEWABLog.txt只在打印机中输出,不在屏幕上显示C:\>type c:\windows\oewablog.txt >prn18、把D:\aa目录下的所有log文件的属性设置为隐藏C:\>attrib d:\aa\*.log +h19、把C盘windows下的所有com文件的属性设置为只读C:\>attrib c:\windows\*.com +r20、把C盘windows下的所有exe文件的属性设置为系统文件C:\>attrib c:\windows\*.exe +s21、去掉D盘下的所有文件的存档属性C:\>attrib d:\*.* -a22、显示C盘下所有文件的属性C:\>attrib c:\*.*23、清除显示器屏幕上的内容C:\>cls24、检查c盘使用情况C:\>chkdsk c:25、查看计算机内存的大小及使用情况C:\>mem26、显示正在运行的DOS系统版本号C:\>ver二、写出下列命令的含义:1、attrib d:\*.* +a +r把d盘下的所有文件的属性设置为存档和只读2、attrib d:\*.* -a去掉D盘下的所有文件的存档属性3、attrib d:\*.exe +s +r把d盘下的所有exe文件的属性设置为系统和只读4、attrib c:\windows\*.com +h把c盘windows目录下的所有com文件的属性设置为隐藏5、attrib c:\windows\*.*显示c盘windows目录下所有文件的属性6、diskcopy a: b:把软盘a中的内容复制到软盘b上7、diskcomp a: b:把软盘a和软盘b的内容进行比较并显示有差别的面和磁道数。

操作系统课程实验题目

操作系统课程实验题目

实验1 进程调度算法的模拟(6学时)1.用语言来实现对n个进程采用不同调度算法的进程调度。

2.每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:(1)进程优先数ID,其中0为闲逛进程,用户进程的标识数为1,2,3…。

(2)进程优先级Priority,闲逛进程(idle)的优先级为0,用户进程的优先级大于0,且随机产生,优先数越大,优先级越高。

(3)进程占用的CPU时间CPUtime,进程每运行一次,累计值等于4。

(4)进程总共需要运行时间Alltime,利用随机函数产生。

(5)进程状态,0:就绪态;1:运行态;2:阻塞态。

(6)队列指针next,用来将多个进程控制块PCB链接为队列。

3.优先数改变的原则(1)进程在就绪队列中每呆一个时间片,优先数增加1。

(2)进程每运行一个时间片,优先数减3。

4.在调度前,系统中拥有的进程数PCB_number由键盘输入,经初始化后,所有的进程控制块PCB链接成就绪队列。

实验2 系统动态分配资源的模拟(6学时)编程序模拟银行家算法,要求能体现算法的全过程实验3 内存分配算法模拟(6学时)设计一个虚拟存储区和内存工作区,编程序演示下述算法的具体实现过程,并计算访问命中率:1、先进先出的算法(FIFO)2、最近最少使用算法(LRU)3、最佳淘汰算法(OPT)4、最不经常使用算法(LFU)实验4 磁盘调度算法模拟(4学时)编程序实现下述磁盘调度算法,并求出每种算法的平均寻道长度:1、先来先服务算法(FCFS)2、最短寻道时间优先算法(SSTF)3、扫描算法(SCAN)4、循环扫描算法(CSCAN)附:实验报告文档格式1.设计目的2.算法及数据结构2.1算法的总体思想(流程)2.2 XXX模块2.2.1 功能2.2.2 数据结构2.2.3 算法2.3 YYY模块3.3.1功能3.3.2 数据结构3.3.3算法3.调试问题及解决过程4.实验结果及分析4.1 实验结果4.2 结果分析。

操作系统实验二:银行家算法

操作系统实验二:银行家算法

操作系统实验⼆:银⾏家算法实验⼆银⾏家算法⼀、实验⽬的1、了解什么是操作系统安全状态和不安全状态;2、了解如何避免系统死锁;3、理解银⾏家算法是⼀种最有代表性的避免死锁的算法,掌握其实现原理及实现过程。

⼆、实验内容根据银⾏家算法的基本思想,编写和调试⼀个实现动态资源分配的模拟程序,并能够有效避免死锁的发⽣。

三、实验原理进程申请资源时,系统通过⼀定的算法判断本次申请是否不可能产⽣死锁(处于安全状态)。

若可能产⽣死锁(处于不安全状态),则暂不进⾏本次资源分配,以避免死锁。

算法有著名的银⾏家算法。

1、什么是系统的安全状态和不安全状态?所谓安全状态,是指如果系统中存在某种进程序列<P1,P2,…,Pn>,系统按该序列为每个进程分配其所需要的资源,直⾄最⼤需求,则最终能使每个进程都可顺利完成,称该进程序列<P1,P2,…,Pn,>为安全序列。

如果不存在这样的安全序列,则称系统处于不安全状态。

2、银⾏家算法把操作系统看作是银⾏家,操作系统管理的资源相当于银⾏家管理的资⾦,进程向操作系统请求分配资源相当于⽤户向银⾏家贷款。

为保证资⾦的安全,银⾏家规定:(1) 当⼀个顾客对资⾦的最⼤需求量不超过银⾏家现有的资⾦时就可接纳该顾客;(2) 顾客可以分期贷款,但贷款的总数不能超过最⼤需求量;(3) 当银⾏家现有的资⾦不能满⾜顾客尚需的贷款数额时,对顾客的贷款可推迟⽀付,但总能使顾客在有限的时间⾥得到贷款;(4) 当顾客得到所需的全部资⾦后,⼀定能在有限的时间⾥归还所有的资⾦。

操作系统按照银⾏家制定的规则设计的银⾏家算法为:(1)进程⾸次申请资源的分配:如果系统现存资源可以满⾜该进程的最⼤需求量,则按当前的申请量分配资源,否则推迟分配。

(2)进程在执⾏中继续申请资源的分配:若该进程已占⽤的资源与本次申请的资源之和不超过对资源的最⼤需求量,且现存资源能满⾜该进程尚需的最⼤资源量,则按当前申请量分配资源,否则推迟分配。

(3)⾄少⼀个进程能完成:在任何时刻保证⾄少有⼀个进程能得到所需的全部资源⽽执⾏到结束。

计算机操作系统实验二

计算机操作系统实验二

计算机操作系统实验二一、实验目的本实验旨在通过实际操作,深入理解和掌握计算机操作系统中的进程与线程管理。

通过实验,我们将了解进程的创建、执行、阻塞、唤醒等状态以及线程的创建、同步、通信等操作。

同时,通过实验,我们将学习如何利用进程和线程提高程序的并发性和效率。

二、实验内容1、进程管理a.进程的创建与执行:通过编程语言(如C/C++)编写一个程序,创建一个新的进程并执行。

观察和记录进程的创建、执行过程。

b.进程的阻塞与唤醒:编写一个程序,使一个进程在执行过程中发生阻塞,并观察和记录阻塞状态。

然后,通过其他进程唤醒该进程,并观察和记录唤醒过程。

c.进程的状态转换:根据实际操作,理解和分析进程的状态转换(就绪状态、阻塞状态、执行状态)以及转换的条件和过程。

2、线程管理a.线程的创建与同步:编写一个多线程程序,创建多个线程并观察和记录线程的创建过程。

同时,使用同步机制(如互斥锁或信号量)实现线程间的同步操作。

b.线程的通信:通过消息队列或其他通信机制,实现多个线程间的通信。

观察和记录线程间的通信过程以及通信对程序执行的影响。

c.线程的状态转换:根据实际操作,理解和分析线程的状态转换(新建状态、就绪状态、阻塞状态、终止状态)以及转换的条件和过程。

三、实验步骤1、按照实验内容的要求,编写相应的程序代码。

2、编译并运行程序,观察程序的执行过程。

3、根据程序的输出和实际操作情况,分析和理解进程与线程的状态转换以及进程与线程管理的相关原理。

4、修改程序代码,尝试不同的操作方式,观察程序执行结果的变化,进一步深入理解和掌握进程与线程管理。

5、完成实验报告,总结实验过程和结果,提出问题和建议。

四、实验总结通过本次实验,我们深入了解了计算机操作系统中的进程与线程管理原理和实践操作。

在实验过程中,我们不仅学习了如何利用编程语言实现进程和线程的操作,还通过实际操作观察和分析了进程与线程的状态转换以及进程与线程管理的基本原理。

大学计算机基础实验指导与习题 第2章 Windows操作系统

大学计算机基础实验指导与习题  第2章 Windows操作系统

14
实验2-2 Windows XP资源 管理器的应用
四、练习实验 1.在E:盘上建立文件夹,名为“计算机基础”。 2.查找“sunset.jpg”所在位置,并将其复制到 “计算机基础”文件夹中。 3.将“计算机基础”文件夹中的“sunset.jpg”改 名为“我的图片.jpg”。 4.在桌面上为“我的图片.jpg”创建快捷方式,并尝 试用新建立的快捷方式打开该文件。 5.查看“我的图片.jpg”文件的信息,包括文件的大 小、文件的名称(包括文件主名和扩展名)、文件建 立与修改日期等。 6.在E:盘中,分别以连续成组、非连续、反向和全 选方式选择文件或文件夹。
2
实验2-1 Windows XP基本操作
2.掌握窗口的基本操作。 (1)打开“我的电脑”窗口,熟悉窗口的组成。 窗口是由标题栏、菜单栏、工具栏、状态栏、工作 区域及滚动条等几部分组成。 (2)练习下列窗口操作操作: ①移动窗口。 ②适当调整窗口的大小,使滚动条出现。利用滚动 条来改变窗口显示的内容。 ③先将窗口最小化,然后再将窗口复原。 ④先将窗口最大化,然后再将窗口复原。 ⑤关闭窗口。
实验2-1 Windows XP基本操作
一、实验目的 1.掌握Windows XP的启动和退出。 2.熟悉Windows XP的桌面布局。 3.了解对话框中的常见组成元素。 4.熟悉窗口的基本操作。 5.熟悉菜单的使用。
1
实验2-1 Windows XP基本操作
二、实验内容和步骤 1.启动Windows XP,熟悉桌面、对话框的组成, 学会对桌面的图标和对话框等进行操作。 (1)打开计算机,进入Windows XP。观察桌面 的组成,认识应用程序和图标。 ①查看任务栏的属性。 ②改变任务栏及各区域大小。 ③熟悉桌面常用的图标。 ④熟悉“开始”菜单的使用。 (2)熟悉对话框的组成要素,了解基本操作。

操作系统实验二(进程管理)

操作系统实验二(进程管理)

操作系统进程管理实验实验题目:(1)进程的创建编写一段程序,使用系统调用fork( )创建两个子进程。

当此程序运行时,在系统中有一个父进程和两个子进程活动。

让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。

试观察记录屏幕上的显示结果,并分析原因。

(2)进程的控制修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执行时屏幕上出现的现象,并分析原因。

(3)编制一段程序,使其实现进程的软中断通信。

要求:使用系统调用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按Del键);当捕捉到中断信号后,父进程调用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child process 1 is killed by parent! Child process 2 is killed by parent! 父进程等待两个子进程终止后,输出如下的信息后终止: Parent process is killed! 在上面的程序中增加语句signal(SIGINT, SIG_IGN)和signal(SIGQUIT, SIG_IGN),观察执行结果,并分析原因。

(4)进程的管道通信编制一段程序,实现进程的管道通信。

使用系统调用pipe( )建立一条管道线;两个进程P1和P2分别向管道各写一句话: Child 1 is sending a message! Child 2 is sending a message! 而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。

要求父进程先接收子进程P1发来的消息,然后再接收子进程P2发来的消息。

实验源程序及报告:(1)、进程的创建#include <stdio.h>int main(int argc, char *argv[]){int pid1,pid2; /*fork first child process*/if ( ( pid1=fork() ) < 0 ){printf( "ProcessCreate Failed!");exit(-1);}if ( ( pid1=fork() ) == 0 ){printf( "b\n" );}/*fork second child process*/if ( ( pid2=fork() ) < 0 ){printf( "ProcessCreate Failed!"); exit(-1);}if ( ( pid2=fork() ) == 0 ){printf( "c\n" );}/*parent process*/else{wait(NULL);printf( "a\n" );exit(0);}return 0;}(2)、进程的控制#include <stdio.h>int main(int argc, char *argv[]){ int pid1,pid2;/*fork first child process*/if ( ( pid1=fork() ) < 0 ){printf( "ProcessCreate Failed!");exit(-1);}if ( ( pid1=fork() ) == 0 ){printf( "This is my Unix OS program!\n" ); }/*fork second child process*/if ( ( pid2=fork() ) < 0 ){printf( "ProcessCreate Failed!");exit(-1);}if ( ( pid2=fork() ) == 0 ){printf( "This is the second Child process!\n" ); }/*parent process*/else{wait(NULL);printf( "This is the Parent process\n" );exit(0);}return 0;}(3)编制一段程序,使其实现进程的软中断通信。

操作系统实验2参考答案

操作系统实验2参考答案

操作系统实验2参考答案进程和进程通信实验参考答案(一) 实验题目父进程输入一个字符,传递给子进程,由子进程得到该字符向后的偏移字符,如果最终字符大于z,那么最终字符显示成a,另外,如果转化成数字字符(0DD9),那么进行进程图像转换,执行ls命令!程序框图如下:(二) 数据结构说明除了main()函数以外,还有其他3个函数,一个是signalfun(),是信号*****对应的处理函数;一个是writetofile函数,是对一个文件写如一定的内容的函数;还有一个是readfromfile,是从一个文件里面读取内容的函数。

子进程的创建都是在main()函数里面!<i>答案</i>(三) 测试方法:黑箱测试法执行程序结果,输入不同的字符与数字,看输出的结果(在屏幕上有输出)。

(四) 测试结果:各种输入输出都符合预定的结果!(五) 实验的步骤:先运行emacs test_2.C命令,编辑程序代码然后编译:gcc Co test_2 test_2.C再反复运行:./test_2下面是部分测试截图:<i>答案</i>(六) 总结与体会:进程间的通信的方法有很多种,可以通过管道(早期用的比较多)、消息、信号、共享内存等等,通过这些方法,可以实现进程的协作,可以实现计算机间的协作,进而完成复杂的任务。

对于这些方法,只有通过实践编程来实现一些具体的功能,才能够有更深刻的理解,才能掌握这些方法!源代码:#include "test_2.h"//信号*****的处理函数void signalfun(int temp){}//向文件写一定长度的字符串,void writetofile(char *filename,char *buf,int len){int fd; //用读写的方式打开文件,如果文件没有,创建文件if ((fd = open(filename,O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR))==-1) { //打开文件失败} else { //文件打开后,写入内容!} write(fd,buf,len); printf("error open file"); printf("It is signal processing function.\n");//关闭文件close(fd);}//从文件里读取一定长度的内容,返回值是具体读出的长度int readfromfile(char *filename,char *buf,int len){} int fd; //用只读的方式打开文件,如果失败,返回0;if ((fd = open(filename,O_RDONLY))==-1) return 0; //读取长度为len 的字符串int readlen = read(fd,buf,len); //关闭文件close(fd); return readlen;<i>答案</i>int main() {int status; pid_t pid; //设置信号*****的处理函数为signalfunsignal(*****,signalfun); //创建子进程,同时通过判断返回值来确定当前是否是父进程,pid0,为父进程if (pid = fork()) { } else { //以下是子进程的处理//休眠10毫秒sleep(10); char ch; //读取tempfile.c文件,里面有父进程的输入,等待处理readfromfile("tempfile.c",ch,1); printf("child will do :\nchange %c to",ch); //取得改字符的后续字符ch += 1; //对于比z大的,从a再开始if (ch'z') ch='a'; //将处理结果写回到tempfile.c文件writetofile("tempfile.c",ch,1); //通知子进程下面结束//父进程printf("Parent:will send signal.\n"); char ch; printf("Please input a char:"); //等待输入ch = getchar(); printf("\n"); //将输入写入文件tempfile.c writetofile("tempfile.c", ch,1); //向子进程发送信号,并阻塞本身,kill(pid,*****); //等待子进程结束wait(status); char ch2; //子进程结束后,读取tempfile.c文件,里面有子进程处理的内容readfromfile("tempfile.c",ch2,1); //输出printf("Now parent:%c be changed ,it is %c\n",ch,ch2); printf("status = %d: Parent finished.\n",status);<i>答案</i>} } printf(" %c\nchild finished!\n",ch); //如果处理结果是数字字符,那么进行进程图像转换if (ch='0' ch='9') { } //退出exit(0); printf("!!!yes,now execl begin:\n"); execl("/bin/ls","ls","-l",(char *)0);。

操作系统试验题

操作系统试验题

操作系统试验题操作系统实验题1.启动计算机,观察屏幕画面变化和提示,思考启动过程中计算机所做的工作。

2.查看系统属性:本机的名字、处理器信息、操作系统信息、内存大小等。

3.在Windows7的计算机管理中:(1)查看本机安装了几块硬盘,每块硬盘有几个分区?(2)创建一个虚拟磁盘(VHD),将这个虚拟磁盘初始化(选择MBR分区形式),并分成两个主分区,对每个分区格式化(选择最大分配单元)。

在其中一个分区中新建一个文本文件,在文本文件中写入一个字符,保存关闭文件,查看文件属性中文件大小和占用空间分别是多少。

4.分析C盘是否需要碎片整理?5.下载一个应用程序,将其安装到本机上,观察开始菜单是否添加了相应项;最后再将该程序卸载(如果本机已经安装了该程序,可先卸载再安装)。

6.打开任一应用程序,利用“任务管理器”,将其关闭。

7.改变屏幕分辨率,观察屏幕显示的变化。

8.删除一种输入法,然后再将其添加上。

9.查找文件calc.exe,并在桌面为其创建快捷方式。

10.观察资源管理器窗口中的“编辑”菜单,验证并记住常用的快捷键。

11.①在磁盘的任一分区目录下创建一个文件夹“Text”,并在该文件夹中创建一个文本文件“TextFile”。

②将“Text”文件夹的属性设为隐藏,并刷新“Text”所在的文件夹,观察是否还能看到“Text”文件夹。

如果不能看到,请将其显示出来,如果还能看到,请将其隐藏再显示出来。

③将文件“T extFile”的扩展名显示出来,如果已经显示了扩展名,请将其隐藏。

12.新建一个库,将D:盘中的一个文件夹包含进去,然后在库中删除文件夹中的文件,观察该文件是否真的删除了。

再删除这个库,观察D:盘中的文件夹是否真的删除了,从而体会库与一般文件夹的区别和作用。

《操作系统》实验二

《操作系统》实验二

《操作系统》实验二一、实验目的本实验旨在加深对操作系统基本概念和原理的理解,通过实际操作,提高对操作系统设计和实现的认知。

通过实验二,我们将重点掌握进程管理、线程调度、内存管理和文件系统的基本原理和实现方法。

二、实验内容1、进程管理a.实现进程创建、撤销、阻塞、唤醒等基本操作。

b.设计一个简单的进程调度算法,如轮转法或优先级调度法。

c.实现进程间的通信机制,如共享内存或消息队列。

2、线程调度a.实现线程的创建、撤销和调度。

b.实现一个简单的线程调度算法,如协同多任务(cooperative multitasking)。

3、内存管理a.设计一个简单的分页内存管理系统。

b.实现内存的分配和回收。

c.实现一个简单的内存保护机制。

4、文件系统a.设计一个简单的文件系统,包括文件的创建、读取、写入和删除。

b.实现文件的存储和检索。

c.实现文件的备份和恢复。

三、实验步骤1、进程管理a.首先,设计一个进程类,包含进程的基本属性(如进程ID、状态、优先级等)和操作方法(如创建、撤销、阻塞、唤醒等)。

b.然后,实现一个进程调度器,根据不同的调度算法对进程进行调度。

可以使用模拟的方法,不需要真实的硬件环境。

c.最后,实现进程间的通信机制,可以通过模拟共享内存或消息队列来实现。

2、线程调度a.首先,设计一个线程类,包含线程的基本属性(如线程ID、状态等)和操作方法(如创建、撤销等)。

b.然后,实现一个线程调度器,根据不同的调度算法对线程进行调度。

同样可以使用模拟的方法。

3、内存管理a.首先,设计一个内存页框类,包含页框的基本属性(如页框号、状态等)和操作方法(如分配、回收等)。

b.然后,实现一个内存管理器,根据不同的内存保护机制对内存进行保护。

可以使用模拟的方法。

4、文件系统a.首先,设计一个文件类,包含文件的基本属性(如文件名、大小等)和操作方法(如创建、读取、写入、删除等)。

b.然后,实现一个文件系统管理器,包括文件的存储和检索功能。

操作系统实验答案-实验2Linux的基本操作及vi的使用(答案)

操作系统实验答案-实验2Linux的基本操作及vi的使用(答案)

实验二Linux的基本命令操作及vi的使用实验目的:1、熟悉Linux操作系统环境2、熟悉Linux操作系统的文件结构3、熟悉Linux操作系统的基本命令4、熟悉Linux操作系统的文件组织方式5、学习使用vi编辑器建立、编辑、显示以及加工处理文本文件。

实验内容及要求:1、登陆实验室的Linux服务器。

启动电脑,进入Windows操作系统,在“开始”-〉“运行"中输入“Telnet 10。

200.41。

178”,即可登陆实验室的Linux服务器.在“Login:”提示后输入“stu”+学号(如02号同学输入stu02),按下回车键。

在“Password:”提示后输入“123”(注意输入密码时屏幕上不会有“*”等符号出现,这和Windows 不同),按下回车键,若出现“[os@ root os]$”或“—bash—2.05b$”,表示已成功登陆系统,可以开始输入指令操作。

思考:(用pwd指令)查看自己登陆后位于Linux的哪个目录,写出该目录的路径,与自己周围的同学比较,看是否相同.(可查阅Linux资料了解“/home”目录的功能介绍)2、在Linux中进行以下基本操作:1)在当前目录下新建一个名为(自己姓名首字母缩写+学号后3位数)的子目录.写出你所用的指令.(例如:mkdir zq000 )2)进入刚创建的子目录环境下。

(提示:指令cd)3)在刚创建的子目录下新建一个名为abc.txt的文件。

写出你所用的指令。

(提示:新建文件的指令是touch)4)将/目录下(即根目录下)的welcome.txt文件复制到自己的子目录下,写出你所用的指令。

cp –i /root/stu62/abc.txt /home/welcome。

txt5)写出welcome.txt文件的内容。

(提示:用cat指令查看)Hello, Boys and girls , welcome to the wonderful Linux world!3、在Linux中进行以下基本操作:1)进入自己的主目录。

操作系统实验

操作系统实验

操作系统实验报告(一)Linux基本操作与编程(验证性 2学时)1、实验目(de):1)熟悉Linux操作系统(de)环境和使用.2)了解LINUX系统(de)安装过程.(注:表示可选择)3)掌握Linux环境下(de)命令操作.2、实验内容:(1)完成LINUX系统(de)登录,启动终端.进行下列操作并记录结果(要求:结果以屏幕截图表示).1)运行pwd命令,确定你当前(de)工作目录.2)利用以下命令显示当前工作目录(de)内容: ls –l3)运行以下命令: ls –al4)使用mkdir命令建立一个子目录subdir.5)使用cd命令,将工作目录改到根目录(/)上.6)使用ls-l命令列出/dev(de)内容.7)使用不带参数(de)命令cd改变目录,然后用pwd命令确定你当前(de)工作目录是哪里8)使用命令cd ../..,你将工作目录移到什么地方(2)在LINUX下查看你(de)文件.1)利用cd命令,将工作目录改到你(de)主目录上.2)将工作目录改到你(de)子目录subdir,然后运行命令: date > file1 将当前日期和时间存放到新建文件file1中.3)使用cat命令查看file1文件(de)内容.4)利用man命令显示date命令(de)用法: man date5)将date命令(de)用法附加到文件file1(de)后面:man date >> file16)利用cat命令显示文件file1(de)内容.7)利用ls -l file1命令列出文件file1(de)较详细(de)信息.运行ls -l/bin 命令显示目录(de)内容.8)利用ls -l/bin|more命令行分屏显示/bin目录(de)内容.9)利用cp file1 fa命令生成文件file1(de)副本.然后利用ls -l命令查看工作目录(de)内容.10)用cd命令返回你(de)主目录,输入命令ls –l后,解释屏幕显示(de)第一列内容(de)含义.(3)编写能输出“Hello world”问候语(de)C程序,并在终端中编译、执行.要求记录所使用(de)命令及结果.操作步骤:1)在文本编辑器中,编写C程序如下:include ""main(){ printf("hello"); }2) 在终端中,用gcc命令进行编译,生成可执行文件a.gcc –o a3) 在终端中执行a (de)命令如下:./a(4)编写一个程序:显示信息“Time for Play”,并能在后台运行一段时间(自定义)后,弹出信息提醒用户.要求记录所使用(de)命令及结果.(提示:使用sleep(s)函数)3、实验结果分析:(对上述实验内容中(de)各题结果,进行分析讨论.并回答下列问题)(1)进程包括哪些特征间断性, 失去封闭性, 不可再现性, 动态性, 并发性, 独立性(2)在Linux中,如何设置前、后台命令和程序(de)执行命令后直接加 & ,这个命令就在后台执行;正在运行(de)命令,使用Ctrl+z ,就挂起; jobs命令,可以现实后台,包括挂起(de)命令;使用 bg %作业号就可以把挂起(de)命令在后台执行;使用 fg %作业号就可以把后台命令调到前台(3)你所使用(de)Linux系统(de)内核版本是多少用什么命令查看内核版本目前你所了解(de)各发行版本(de)情况如何Linux version (gcc version (Red Hat (GCC) ) 1 SMP Tue Jan 2911:48:01 EST 2013(4)你对Linux系统有什么认识linux是一款开放性(de)操作系统,也可以说成是开放(de)源代码系统,这些代码可以完全自由(de)修改可以再任何(de)计算机上去运行它,也就是“可移植性”,其次大家都知道,linux是由UNIX(de)概念所开发出来(de),所以它也继承了UNIX(de)稳定和效率(de)特点4、总结:你对本次实验有什么体会或看法.操作系统实验报告(二)文件访问权限设置与输入输出重定向(2学时)一、实验目(de)1、掌握linux(de)文件访问权限设置.2、熟悉输入输出重定向和管道操作.二、实验内容1、启动进入红帽linux系统2、设置文件权限:在用户主目录下创建目录test,进入test目录,用vi 创建文件file1,并输入任意(de)文字内容.用ls -l显示文件信息,注意文件(de)权限和所属用户和组.对文件file1设置权限,使其他用户可以对此文件进行写操作:chmod o+w file1.用ls -l查看设置结果.取消同组用户对此文件(de)读取权限:chmod g-r file1.查看设置结果.用数字形式来为文件file1设置权限,所有者可读、可写、可执行;其他用户和所属组用户只有读和执行(de)权限:chmod 755 file1.设置完成后查看设置结果.3、输入、输出重定向和管道(1) 输出重定向用ls命令显示当前目录中(de)文件列表:ls –l.使用输出重定向,把ls命令在终端上显示(de)当前目录中(de)文件列表重定向到文件list中:ls –l > list.查看文件list中(de)内容,注意在列表中会多出一个文件list,其长度为0. 这说明shell是首先创建了一个空文件,然后再运行ls命令:cat list.再次使用输出重定向,把ls命令在终端上显示(de)当前目录中(de)文件列表重定向到文件list中.这次使用追加符号>>进行重定向:ls –l >> list.查看文件list(de)内容,可以看到用>>进行重定向是把新(de)输出内容附加在文件(de)末尾,注意其中两行list文件(de)信息中文件大小(de)区别:cat list.重复命令ls –l > list.再次查看文件list中(de)内容,和前两次(de)结果相比较,注意list文件大小和创建时间(de)区别.(2) 管道who |grep root命令(de)结果是命令ls –l |wc –l结果是4、退出linux系统操作步骤:在主菜单上选择“注销” ->关闭计算机.三、实验结果与讨论(根据实验结果回答下列问题)1. 文件(de)权限如下:-rw-r—r-- 1 root root 19274 Jul 14 11:00回答:-rw-r—r-- (de)含义是什么答:是LINUX/FTP(de)简易权限表示法:对应于本用户-所在组-其他人(de)权限,每一个用执行(x)-读取(r)-写入(w)如本题若是说自己可以读取写入不可以执行,所在组和其他人只能读取.2、文件(de)所有者添加执行权限(de)命令是答:chmod u+x 、赋予所有用户读和写文件权限(de)命令是四、答:chmod a+w,a+r 个人体会(你对本次实验有什么体会或看法)操作系统实验报告(三)文件和目录管理一、实验目(de)1) 掌握在Linux系统下(de)文件和文件系统(de)概念及命令;2) 掌握Linux系统下(de)目录操作.二、实验内容1. 进入linux终端后,用命令(de)操作结果回答下列问题:1)vi(de)三种工作模式是其中不能进行直接转换(de)是什么模式到什么模式命令模式、文本输入模式、末行模式命令模式不能直接到末行模式2)在vi中退出时,保存并退出(de)操作步骤是Ese:wq3)用vi 创建myfile1文件,并在其中输入任意文字一行,创建myfile2文件,任意输入文字3行.请问执行命令:cat <myfile1 >myfile2 后,myfile2中还有几行内容该命令(de)作用是用命令操作验证你(de)回答.myfile2中还有1行内容该命令(de)作用是替换myfile(de)内容4)请用至少两种不同(de)命令创建一个文本文件(),在其中写入“我是2014级学生,我正在使用Linux系统.”,记录命令及执行结果.1、Vi创建2、5)用___pwd________命令可查看所创建文件(de)绝对路径,写出它(de)绝对路径__/root_________;用___ls -l________命令查看该文件(de)类型及访问权限,其访问权限(数字和字母)分别是多少__-rw- r- - r- - 6 4 4______________.6)若将该文件(de)访问权限修改为:所有者有读写权限;其他用户只读;同组用户可读写,请写出命令,并记录结果.7)查找my开头(de)所有文件,可___find my_________命令,写出命令并记录结果8)在/home下创建子目录user,并在其中创建2个文件,名为file1和file2,file1(de)内容是/root目录(de)详细信息;file2(de)内容任意,最后将这两个文件合并为file3文件,请先写出命令序列,并在终端中验证,记录结果.2. 文件及目录操作,写出操作所使用(de)命令,并记录结果.在终端中完成下列命令操作,并记录结果在root用户主目录下创建一个mydir子目录和一个myfile文件,再在mydir下建立d1和d2两个子目录.查看mydir和myfile(de)默认权限查看当前myfile和mydir(de)权限值是多少将myfile文件分别复制到root 和dd1(de)主目录中将root主目录中(de)myfile改为yourfile通过从键盘产生一个新文件并输入I am a student查找文件是否包含student字符串三、实验结果与分析,回答下列问题:1、能够创建文件(de)命令有哪些vi 和cat>name2、能够查看当前目录(de)绝对路径(de)命令是pwd3、Linux中按用户属性将用户分成哪些类型根据文件(de)访问权限,用户又被分成哪些类型能够查看文件访问权限(de)命令是用户同组其他可读可写可执行 cat f1四、小结(本次实验(de)体会或小结)操作系统实验报告(四)作业调度算法模拟(验证性2学时)1、实验目(de):1)掌握作业调度(de)主要功能及算法.2)通过模拟作业调度算法(de)设计加深对作业管理基本原理(de)理解.3)熟悉Linux环境下应用程序(de)编程方法.2、实验内容:(1)作业调度算法(FCFS)编程模拟:编制一段程序,对所输入(de)若干作业,输入、输出数据样例如下表所示.按FCFS算法模拟调度,观察、记录并分析调度(de)输出结果情况.输入输出样例1:FCFS算法include <>include <>define SIZE 5struct Job_type{char no[2]; o,&job[i].tb,&job[i].tr);printf("输入作业顺序:\n");for(i=0;i<SIZE;i++)printf("\t%s\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr);}void fcfs(){ int i,j,t=0,tw=0,tt=0;for(i=0;i<SIZE-1;i++)for(j=i+1;j<SIZE;j++)if(job[i].tb>job[j].tb){x=job[i];job[i]=job[j];job[j]=x;}printf("FCFS调度结果:\n");printf("开始时间作业号到达时间运行时间完成时间等待时间周转时间\n");for(i=0;i<SIZE;i++){printf(" %d",t);t=t+job[i].tr;tw=t-job[i].tb-job[i].tr; b; o,job[i].tb,job[i].tr,t,tw,tt);}}void main(){load();fcfs();}(2)作业调度算法(SJF)编程模拟:编程实现由短作业优先算法,分别用下面两组输入、输出数据样例进行模拟,观察分析运行结果.输入输出样例2:SJF算法输入输出A 0 4B 0 3C 0 5D 0 2E 0 1A 0 6 10 10B 0 3 6 6C 0 10 15 15D 0 1 3 3E 0 0 1 1include <>include <>define SIZE 5struct Job_type{char no[2]; o,&job[i].tb,&job[i].tr);printf("输入作业顺序:\n");for(i=0;i<SIZE;i++)printf("\t%s\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr);}void sjf()n=i; pl[i].pfn=ERR;}for(i=1;i<total;i++){ pfc[i-1].next=&pfc[i];pfc[i-1].pfn=i-1;}pfc[total-1].next=NULL;pfc[total-1].pfn=total-1;freepf_head=&pfc[0];}void FIFO(int total){ int i,j;pfc_type p,t;initialize(total);busypf_head=busypf_tail=NULL;for(i=0;i<page_len;i++){if(pl[page[i]].pfn==ERR){ diseffect+=1;if(freepf_head==NULL){p=busypf_head->next;pl[busypf_head->pn].pfn=ERR; freepf_head=busypf_head;freepf_head->next=NULL;busypf_head=p;}p=freepf_head->next;freepf_head->next=NULL;freepf_head->pn=page[i];pl[page[i]].pfn=freepf_head->pfn;if(busypf_tail==NULL)busypf_head=busypf_tail=freepf_head; else{ busypf_tail->next=freepf_head;busypf_tail=freepf_head;}freepf_head=p;}}printf("FIFO:%d",diseffect);}main(){ int i; int k;printf(“请输入页(de)引用序列:\n”); for(k=0;k<page_len;k++)scanf("%d",&page[k]);for(i=4;i<=7;i++){printf("%2d page frames ",i);FIFO(i);}参考程序LRU算法,略三、实验结果分析:(对上述实验各题所使用(de)原始数据、调试数据与状态(包括出错)及最终结果进行记录并分析.)随着块数(de)增加,缺页数目也减少,4个实验中3个实验(de)块数增加到了5以后,即使块数再增加,缺页数目也是保持不变.只有实验4,块数增加到7以后,缺页数目又再次减少了四、总结:你对本次实验有什么体会或看法.。

《操作系统》实验报告(2)

《操作系统》实验报告(2)
b.将f02.txt的读权限去掉(修改权限的命令是chmod),___chmod -r f02.txt____;看看还能否用cat打开该文件;不能查看,权限不够
c.将subdir目录的读权限去掉,看看是否能用ls命令看到其中内容?
权限不够
(三)Shell程序设计
1.上机编辑、执行实验内容中的例1~例6过程,写出每个脚本(例1~例5)的功能和执行结果;
然后把t01.txt复制一个新文件t03.txt,catt01.txt>t02.txt;
用cat命令将f01.txt的内容追加到t01.txt的末尾,catf01.txt>> t01.txt;
再用diff命令比较t01.txt,t02.txt和t03.txt,比较t01.txt,t02.txt:diff t01.txt t02.txt,结果是否相同:__相同___;比较t01.txt,t03.txt:diff t01.txt t03.txt,结果是否相同:不相同;比较t02.txt,t03.txt:diff t02.txt t03.txt,结果是否相同:不相同。出现上述结果的原因是:______________________________________________________________________________。
2.修改例5,使脚本中不出现break循环控制语句;
3.编写一个Shell过程完成如下功能:
a.合并两个$1、$2文件为$3,并显示内容。
b.如果缺少$3,那么先报告缺少$3,将合并后的内容输出到totaltext.txt,并显示内容。
c.如果缺少$2、$3那么先报告缺少$2、$3,只显示$1的内容。
b.用ln命令给t03.txt建立一个符号链接t04.txt,ln–st03.txt t04.txt;用cat命令看看t04.txt,___cat t04.txt_____;然后删去t03.txt,___rm t03.txt____;再用cat命令看看t04.txt,___cat t04.txt___;结果是:___t04.txt为空____

操作系统 实验2进程控制管理 实验报告

操作系统 实验2进程控制管理 实验报告
else
{
while((p2=fork( ))= = -1); /*创建子进程p2*/
if(p2= =0)
for(i=0;i<10;i++)
printf("son %d\n",i);
else
for(i=0;i<10;i++)
printf("parent %d\n",i);
}
}
5.退出后,用同样方法查看此文件的代码内容。
2)修改上述程序,每一个进程循环显示一句话。子进程显示'daughter…'及'son……',父进程显示'parent……',观察结果,分析原因。
实验用到的软件(:)
虚拟机VMWare/Virtual Box
fedora15
实验内容及关键步骤(代码)Q3(15分)
1.按照上一次实验的步骤,进入后需要切换到管理员,输入“su root”,输入密码之后,可以输入“ls”查看目录下的文件。附加:为了熟悉上一节实验课内容,我先创建了一个myleb2的文件夹,然后再在这个文件夹里创建一个子文件夹love,再在里面编译。
6.查看无问题后,输入“gcc –o test2 test2.c”,修改运行文件名,然后查看该文件夹下的所有文件,能看到“test2”运行文件。
7.运行“test2”文件,输入“./test2”,可查看运行结果为“daughter 0,daughter 1,daughter 2,daughter 3….. daughter 9”。
3.首先是读入文件内容,再次是看文件有没有指定程序运行,如果有则运行,如果没有则输出出错的信息。
实验中的问题及解决办法:

操作系统习题2

操作系统习题2

操作系统习题2一、填空1、在可变分区存储管理中,分区的保护通常采用(界限寄存器)和(存储保护键)两种法。

2、采用交换技术获得的好处是以牺牲(CPU时间)为代价的。

3、把作业装入内存中随即进行地址变换的方式称为(静态重定位),而在作业执行期间,当访问到指令或数据时才进行地址变换的方式称为(动态重定位)4、在分区分配算法中,首次适应算法人倾向于优先利用内存中的(低地址)部分的空闲区,从而保留了(高地址)部分的大空闲分区。

5、进行设备分配时所需的数据表格主要有(设备控制表)(控制器控制表)(通道控制表)和(系统设备表)等。

6、从资源管理(分配)的角度出发,I/O设备可分为(独享)(共享)和(虚拟)三种类型。

7、为实现CPU与外部设备的并行工作,系统引入了(通道和中断)硬件机制。

8、引起中断发生的事件称为(中断源)。

9、常用的I/O控制方式有程序直接控制方式、中断控制方式(DMA控制方式)和(通道控制方式)。

10、逻辑设备表(LUT)的主要功能是(实现设备独立)和(实现设备分配的灵活性)。

11、缓冲区由(缓冲首部)和(缓冲体)组成。

12、I/O设备处理进程平时处于(阻塞)状态,当(I/O中断)和(I/O请求)出现时被唤醒。

13、设备分配程序分配外部设备时先分配(设备),再分配(控制器),最后分配(通道)。

14、索引文件大体上由(索引)区和(数据)区构成,其中(索引)区一般按关键词的顺序存放。

15、磁盘文件目录表的内容至少应包含(文件名)和(文件在磁盘上的存放地址)。

16、目前认为逻辑文件有两种类型,即(记录)式文件与(流)式文件。

17、文件目录的作用是(实现文件名到物理地址的转换)。

18、文件的结构就是文件的组织形式,从用户观点出发所看到的文件组织形式称为文件的(逻辑结构);从实现观点出发,文件在外存上的存放组织形式称为文件的(物理结构)。

二、选择1、在存储管理中,采用覆盖技术的目的是()。

A.节省内存空间B.物理上扩充内存容量C.提高CPU效率D.实现内存共享2、采用()不会产生内碎片。

上机实验2:Windows操作系统的基本操作

上机实验2:Windows操作系统的基本操作

上机实验2 Windows操作系统的基本操作一、实验目的1、掌握窗口和对话框的组成及基本要素;2、进一步掌握桌面和任务栏的各种操作;3、掌握控制面板的基本功能二、实验内容1 窗口和对话框的基本组成及操作方法1.1窗口观察当前窗口的基本组成:控制菜单、窗口主工作区、标题栏、菜单、工具栏、边框、状态栏、滚动箭头、滚动条、窗口的最大化、最小化、窗口关闭等。

注:菜单类型有下拉式菜单、快捷菜单、级联式子菜单菜单中常见标记说明(●)------表示目前有效的单选框。

(√)-----表示目前有效的复选框。

(ALT+字母、CTRL+字母)----表示键盘快捷键。

(…)------表示执行该命令会引出一个对话框。

(▲)-----表示执行该命令会弹出一个子菜单。

“变灰的命令”-----表示该命令当前不能使用。

1.1.1最大化、最小化或关闭窗口练习:最大化、最小化及关闭窗口的所有方法。

注意:◆可以双击窗口的标题栏来最大化窗口或还原到原来的大小。

◆最小化所有打开的窗口以及对话框,可用快捷键“WIN键+M键”。

◆多个窗口的排列(层叠、纵向平铺、横向平铺)。

◆多个窗口之间的切换:Alt+Tab, Alt+Esc,Alt+Tab+Shift1.1.2调整窗口大小要改变宽度,请指向窗口的左边界或右边界。

当指针变为水平双向箭头时,请向左或向右拖动边界。

要改变高度,请指向窗口的上边界或下边界。

当指针变为垂直双向箭头时,请向上或向下拖动边界。

要同时改变高度和宽度,请指向窗口的任何一个角。

当指针变为斜双向箭头时,以任何方向拖动边界。

1.1.3移动窗口(操作略)1.1.4恢复窗口(操作略)1.2对话框(以“显示属性”对话框为例)大部分的对话框组成元素包括:标题栏、选项卡(也称标签)、文本框、单选按钮、复选框、列表框、滑杆或滑块、可变数字按钮、命令按钮、帮助按钮等。

比较:窗口与对话框的区别?2 桌面和任务栏的基本操作2.1桌面的基本操作2.1.1桌面的图标用户可以把一些常用的应用程序和文件夹添加到桌面上。

操作系统原理实验题

操作系统原理实验题

《操作系统原理》实验考核方式与基本要求:1)按要求设计相应的模拟系统并上机调试运行2)写出详细的实验报告,实验报告要求如下:(1)实验题目。

(2)程序中使用的数据结构及符号说明。

(3)流程图。

(4)打印一份源程序并附上注释。

(5)打印程序运行时的初值和运行结果。

实验报告可参考附录A中的规范进行编写。

基本要求: 4人为一小组,采取课内上机和业余上机相结合的方式进行,在规定时间内每个小组以实验报告形式上交实验(设计)结果并上机演示说明。

㈠进程管理㈡模拟PV操作同步机构,且用PV操作解决生产者——消费者问题。

㈢银行家算法㈣模拟分页式存储管理中硬件的地址转换和产生缺页中断㈤用先进先出(FIFO)页面调度算法处理缺页中断㈥用最近最少用(LRU)页面调度算法处理缺页中断㈦设计一个按优先数调度算法实现处理器调度的进程㈧设计一个按时间片轮转法实现处理器调度的程序㈨模拟实现一个简单的固定(或可变)分区存储管理系统㈩模拟实现单通路I/O系统中的设备分配程序实验一进程管理1.实验内容至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。

㈠进程管理2.实验提示PCB结构通常包括以下信息:进程名,进程优先数,轮转时间片,进程所占用的CPU 时间,进程的状态,当前队列指针等。

可根据实验的不同,PCB结构的内容可以作适当的增删。

例:实验运行结果********************************************* 进程演示系统*********************************************1.创建新的进程2.查看运行进程3.换出某个进程4.杀死运行进程5.进程之间通信6.退出系统********************************************请选择(1~6)然后根据你选择的不同,出现不同的结果。

实验二同步机构1、实验内容㈡第一题:模拟PV操作同步机构,且用PV操作解决生产者——消费者问题。

计算机操作系统实验课题

计算机操作系统实验课题

一、计算机操作系统实验课题1.1 输入法1.1.1找到屏幕下边栏(即任务栏)输入法图标所在位置,使用拷贝屏幕键(Print Screen)拷贝,然后粘贴在下面:(注意:使用word 图片工具栏上的图标,可以剪裁拷贝而成的图片,直到只剩下图标。

)如:你的计算机上的输入法图标是:1.1.2 拷贝语言栏粘贴在下面。

(注意:如果看不见语言栏的话,用鼠标左键点击它,可以看见一个菜单,里面有相应功能可以转到语言栏显示方式。

)如:你的计算机上的语言栏是:1.1.3 右击输入法图标或语言栏,通过右键菜单进入输入法设置界面。

你的输入法设置界面是:1.1.4删除美式键盘之外的所有其他输入法。

(注意:删除之后,要点击“应用”或“确认”才会生效。

)删除之后,你是否还能输入中文?答:1.1.5 添加一个中文输入法。

然后再次进入输入法设置界面,点击“键设置”,得到以下信息。

在不同输入法之间相互切换使用的功能键是:在中文输入法和英文字母输入之间切换使用的功能键是:在中文输入模式下,切换全角和半角输入使用的功能键是:输入全角阿拉伯数字和半角阿拉伯数字:1.1.6 再次进入输入法设置界面,点击“语言栏……”清除“在桌面上显示语言栏”复选框。

现在还可以在任务栏上看见输入法图标吗?答:如何让它再显示出来?答:1.1.7 调出和使用软键盘,软键盘可以帮助输入特殊字符。

你的软键盘界面是:输入希腊字母阿尔法和欧米茄:1.2 键盘输入1.2.1 字母输入先打出小写的汉语拼音韵母:以大小写切换组合键(shift+字母键)逐个打出大写的汉语拼音韵母:先按一下Caps Lock键,观察键盘有什么变化?答:使用Caps Lock键切换成默认大写,然后打出大写的汉语拼音声母:1.2.2 数字和符号输入输入一个回车(Enter):输入百分号:输入e-mail地址中的带圈符号:输入制表符号,通过制表符间隔出三个数字:1,1.5,1.25:输入一个中文逗号和一个英文逗号:输入中文单双引号:输入英文单双引号:输入书名号:输入省略号:输入顿号:输入国外人名的姓名间的间隔点:输入银行人民币前的羊符号:输入破折号:1.2.3 切换数字锁定键数字锁定键按下后,键盘上会有什么反应?答:使用数字锁定键结合小键盘,输入阿拉伯数字0-9:1.2.4 切换插入/改写输入模式按Insert键,看看word窗口的下边栏(状态栏)有什么反应?答:试着分别在插入和改写模式输入一些字母,回答插入模式和改写模式对输入有什么影响?答:1.2.5 删除和退格试着输入一些字母,然后在中间使用delete键和backspace(←)键,回答这两个键有什么区别。

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

实验报告撰写要求实验报告要求具有以下内容:
一、实验目的
二、实验内容
三、实验要求
四、算法流程图
五、给出测试数据及运行结果
六、实验体会或对改进实验的建议
实验1 进程调度(2学时)
一、实验目的
通过实验加强对进程调度算法的理解和掌握。

二、实验内容
编写程序实现基于优先级的时间片轮转调度算法。

三、实验要求
1、假定系统有5个进程,每个进程用一个进程控制块PCB来代表,进程控制块的结构如下图1.1所示:
图1.1
其中:
进程名:作为进程的标识,假设五个进程的进程名分别为p1,p2,p3,
p4,p5。

指针:进程按顺序排成循环链表,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址。

要求运行时间:假设进程需要运行的单位时间数。

已运行时间:假设进程已经运行的单位时间数,初值为0。

状态:可假设有两种状态,就绪状态和结束状态。

进程的初始状态都为就绪状态。

2、每次运行所设计的处理器调度程序调度进程之前,为每个进程随机确定它的要求运行时间。

3、此程序是模拟处理器调度,因此,被选中的进程并不实际启动运行,而是执行
已运行时间+1
来模拟进程的一次运行,表示进程已经运行过一个单位时间。

4、在所设计的程序中应有显示语句,能显示每次被选中的进程名以及运行一次后进程队列的变化。

实验2 银行家算法(2学时)
一、实验目的
理解银行家算法,掌握进程安全性检查的方法及资源分配的方法。

二、实验内容
编写程序实现银行家算法,并验证程序的正确性。

三、实验要求
编制模拟银行家算法的程序,并以下面给出的例子验证所编写的程序的正确性。

例子:某系统有A、B、C、D 4类资源共5个进程(P0、P1、P2、P3、P4)共享,各进程对资源的需求和分配情况如下表所示。

现在系统中A、B、C、D 4类资源分别还剩1、5、2、0个,请按
银行家算法回答下列问题:
(1)现在系统是否处于安全状态?
(2)如果现在进程P1提出需求(0、4、2、0)个资源的请求,系统能否满足它的请求?
实验3 内存管理(2学时)
一、实验目的
通过实验加强对内存管理方法的理解和掌握。

二、实验内容
编写程序实现采用可变分区方法管理内存。

三、实验要求
1、在该实验中,采用可变分区方式完成对存储空间的管理(即存储空间的分配与回收工作)。

2、设计用来记录主存使用情况的数据结构:已分区表和空闲分区表或链表。

3、在设计好的数据结构上设计一个主存分配算法。

4、在设计好的数据结构上设计一个主存回收算法。

其中,若回收的分区有上邻空闲分区和(或)下邻空闲分区,要求合并为一个空闲分区登记在空闲分区表的一个表项里。

5、(附加)若需要可以实现程序的浮动,对内存空间进行紧凑。

实验4 页面置换算法(2学时)
一、实验目的
通过实验加强对虚拟存储管理中页面置换算法的理解和掌握。

二、实验内容
编写程序实现虚拟存储管理中OPT,FIFO,LRU页面置换算法。

三、实验要求
1、任意给出一组页面访问顺序(如页面走向是1、
2、5、7、5、7、
1、4、3、5、6、4、3、
2、1、5、2)。

2、分配给该作业一定的物理块(如3块、4块等)。

3、利用OPT,FIFO,LRU页面置换算法模拟页面置换过程并计算其缺页率。

4、每访问一个页面均需给出内存中的内容(内存中的页面号),若有淘汰还需给出淘汰的页面号。

5、通过给出特殊的页面访问顺序,分配不同的物理块,利用FIFO 算法计算其缺页率,进一步理解Belady现象。

6、(附加)实现CLOCK置换算法,修改位可在确定页面号时直接任意给出。

实验5 设备管理(2学时)
一、实验目的
理解设备管理的概念和任务,掌握独占设备的分配、回收等主要算法的原理并编程实现。

二、实验内容
编写程序实现对独占设备的分配与回收的模拟。

三、实验要求
1、实现设备分配、回收、显示系统中设备信息的功能。

2、通过设备类表和设备表记录系统中设备信息、以便进行设备分配。

3、设备类表记录系统中全部设备的情况,每个设备类占一个表目,设备类表的数据结构如表1所示。

图1 设备类表
4、为每一个设备配置一张设备控制表,用于记录本设备的情况。

设备控制表的数据结构如图2所示。

图2 设备控制表
4、程序中建立分配设备和回收设备函数。

5、设系统有3类设备,每类设备的设备数分别为2、3、4。

6、要求键盘输入作业名、作业所需设备类和设备相对号。

实验6 SPOOLING技术(2学时)
一、实验目的
理解和掌握SPOOLING技术。

二、实验内容
编写程序实现SPOOLING技术的模拟。

三、实验要求
1、设计一个实现SPOOLING技术的进程
设计一个SPOOLING输出进程和两个请求输出的用户进程及一个SPOOLING输出服务程序。

SPOOLING输出进程工作时,根据请求块记录的各进程要输出的信息,将其实际输出到打印机或显示器。

这里,SPOOLING进程与请求输出的用户进程可并发运行。

2、设计进程调度算法
进程调度采用随机算法,这与进程输出信息的随机性相一致。

两个请求输出的用户进程的调度概率各为45%,SPOOLING输出进程为10%,这由随机数发生器产生的随机数模拟决定。

3、进程状态
进程基本状态有3种,分别为可执行、等待和结束。

可执行状态
就是进程正在运行或等待调度的状态;等待状态又分为等待状态1、等待状态2、等待状态3。

状态变化的条件为:
(1)进程执行完成时,置为“结束”状态。

(2)服务程序在将输出信息送至输出井时,如发现输出井已满,将调用进程置为“等待状态1”。

(3)SPOOLING进程在进行输出时,若输出井空,则进入“等待状态2”。

(4)SPOOLING进程输出一个信息块后,应立即释放该信息块所占的输出井空间,并将正在等待输出的进程置为“可执行状态”。

(5)服务程序在输出信息到输出井并形成输出请求信息块后,若SPOOLING进程处于等待状态则将其置为“可执行状态”。

(6)当用户进程申请请求输出块时,若没有可用请求块时,调用进程进入“等待状态3”。

4、数据结构
1)进程控制块PCB
struct pcb
{
int status;
int length;
}pcb[3];
其中status表示进程状态,其取值:
0 表示可执行状态;
1 表示等待状态1;
2 表示等待状态2;
3 表示等待状态3
2)请求输出块reqblock
struct{
int reqname;//请求进程名
int length;// 本次输出信息长度
int addr;// 信息在输出井的首地址
}reqblock[10];
3)输出井BUFFER
SPOOLING系统为每个请求输出的进程在输出井中分别开辟一个区。

本实验可设计一个二维数组(int buffer[2][10])作为输出井。

每个进程在输出井最多可占用10个位置。

5、编程说明
为两个请求输出的用户进程设计两个输出井。

每个可存放10个信息,即buffer[2][10]。

当用户进程将其所有文件输出完时,终止运行。

为简单起见,用户进程简单的设计成:每运行一次,随机输出数字0~9之间的一个数,当输入10个数时形成一个请求信息块,填入请求输出信息块reqblock结构中。

实验7 文件管理(4学时)
一、实验目的
理解文件系统的主要概念及文件系统内部功能和实现过程。

二、实验内容
采用二级文件目录结构,编写程序实现文件系统的文件存储空间的管理、文件的物理结构、目录结构管理和文件操作。

三、实验要求
1、设计一个有m个用户的文件系统,每个用户最多可保存一个文件。

2、规定用户在一次运行中只能打开K个文件。

3、系统能检查键入命令的正确性,出错时应能显示出错原因。

4、对文件应能设置保护措施,如只能执行、允许读、允许写等。

5、对文件的操作设计提供一套文件操作:
CREATE建立文件;
DELETE删除文件;
OPEN打开文件;
CLOSE关闭文件;
READ读文件;
WRITE写文件。

6、二级目录结构如下图所示。

主文件目录MFD
用户文件目录UFD。

相关文档
最新文档