操作系统实验指导

合集下载

操作系统实验指导书

操作系统实验指导书

《操作系统》课程实验指导书一.实验总学时(课外学时/课内学时):4/8 总学分:8/44必开实验个数: 4 选开实验个数:0二.适用专业:网络工程、计算机科学与技术2007级三.考核方式及办法:在规定实验时间内完成实验要求,依据实验过程及实验结果在实验现场逐一检查考核。

四.配套的实验教材或指导书:自编实验指导书五. 实验项目:实验1 SHELL命令的使用1、实验目的通过对LINUX的系统启动、注销、关闭和关机,帐号管理,文件系统的日常管理,文件系统的权限控制等常用基本命令的使用及与Windows下DOS SHELL的比较,了解现代操作系统SHELL的特点和功能。

了解编辑器vi的使用方法。

2、实验工具及环境LINUX系统网络环境或单机,Windows系统网络环境或单机。

3、实验计划学时2学时上机实际操作。

4、实验内容及操作步骤⑴系统启动和关闭①使用自己的账户登录UNIX系统,查看系统提示符确定自己使用的shell程序类型别。

◎开机后,系统自检启动后提示login:(输入:root↙)password:(输入:用户口令↙,root用户为redhat)◎查看/etc/passwd文件可以获得用户使用的shell#grep $LOGNAME /etc/passwd↙可能的显示为:user001:*:200:50::/usr/user001:/bin/sh请思考上述命令怎样得到了当前使用的shell类型的?使用下面的命令也可以查看当前shell:#echo $SHELL②注销和关机命令。

◎用户注销使用:$exit↙或$<ctrl>+<D>↙或$logout↙◎超级用户关机使用:#shutdown↙该命令将结束所有的进程,当执行此命令后系统提示“Safe to Power off or Press Any Keyto Reboot”时可以关闭电源或按任一键重启系统。

◎haltsys(halt),reboot只能由超级用户在单用户模式下使用。

操作系统实验指导书

操作系统实验指导书

操作系统实验指导书实验⼀操作系统⽤户接⼝实验⼀、实验⽬的熟悉操作系统的命令接⼝、图形⽤户接⼝和程序接⼝。

⼆、实验内容:1、使⽤操作系统的命令接⼝。

使⽤Windows常⽤命令:dir 、md、copy、date、help,显⽰这些命令的结果,并解释这些命令的作⽤。

图1-1 命令控制台图1-2 windows常⽤命令图1-3 windows常⽤命令图1-4 windows常⽤命令使⽤图1-5 windows常⽤命令使⽤2、使⽤操作系统的程序接⼝。

VB环境下:编制⼀⼩程序,使其可通过某个系统调⽤来获得os 提供的某种服务,如打开控制⾯板:Shell "rundll32.exe Shell32.dll,Control_RunDLL", 1VC环境下:⽤C语⾔编制⼀个⼩程序,使其可通过Localtime( )系统调⽤来获得OS提供的时间和⽇期。

3、使⽤操作系统的图形⽤户接⼝(略)。

三、思考:OS向⽤户提供的命令接⼝、图形⽤户接⼝和程序接⼝分别适⽤于哪些场合?实验⼆进程创建与撤消⼀、实验⽬的1、加深对进程概念的理解和进程创建与撤消算法;2、进⼀步认识并发执⾏的实质。

⼆、实验内容本实验完成如下三个层次的任务:(1)系统级—以普通⽤户⾝份认识windows的进程管理。

通过windows的“任务管理器”观察进程的状态,进⾏进程的创建、切换和撤销。

(2)语⾔级—以普通程序员⾝份认识⾼级语⾔VC++/Java/VB的进程创建与撤销⼯具。

(3)模拟级—以OS设计师⾝份编程模拟实现进程创建与撤销功能,并在屏幕上观察进程活动的结果。

三、实验步骤1、windows的进程管理当前状态图2-1 windows任务管理器切换前图2-2 windows任务管理器切换后图2-3 windows任务管理器撤销图2-4 windows任务管理器2、VC++进程创建与撤销⼯具Windows所创建的每个进程都从调⽤CreateProcess() API函数开始,该函数的任务是在对象管理器⼦系统内初始化进程对象。

操作系统实验指导书

操作系统实验指导书

操作系统实验指导书实验概述本次操作系统实验是为了让学生通过实践了解操作系统的基本概念,原理和使用。

通过完成实验,学生将了解操作系统内核,进程调度,文件系统和输入输出等关键组成部分。

实验环境实验要求使用 Linux 操作系统,可以选择任意一种 Linux 发行版。

可以在物理机上安装 Linux,也可以使用虚拟机软件(如 VirtualBox)来运行 Linux 虚拟机。

实验准备在进行实验之前,需要完成以下准备工作:1.安装 Linux 操作系统(如 Ubuntu、Fedora 等)或虚拟机软件(如VirtualBox)。

2.熟悉 Linux 基本命令和操作,包括文件操作、进程管理等。

实验内容本次操作系统实验分为以下几个部分:1. 实验一:进程管理本部分实验要求学生了解进程管理的基本概念和原理,掌握进程创建、终止和状态转换等操作。

学生需要完成以下任务:•编写一个简单的 C 程序,实现进程的创建、终止和状态转换功能。

•使用 Linux 命令行工具编译、运行和调试 C 程序。

•观察和分析进程的状态转换过程。

2. 实验二:进程调度本部分实验要求学生了解进程调度算法的原理和实现方法,掌握优先级调度、轮转调度和最短作业优先调度等算法。

学生需要完成以下任务:•编写一个简单的 C 程序,模拟进程调度算法的执行过程。

•使用 Linux 命令行工具编译、运行和调试 C 程序。

•观察和分析不同调度算法对进程执行顺序的影响。

3. 实验三:文件系统本部分实验要求学生了解文件系统的基本概念和实现原理,掌握文件的创建、读写和删除等操作。

学生需要完成以下任务:•编写一个简单的 C 程序,实现文件的创建、读写和删除功能。

•使用 Linux 命令行工具编译、运行和调试 C 程序。

•观察和分析文件系统的存储结构和操作过程。

4. 实验四:输入输出本部分实验要求学生了解操作系统的输入输出机制和设备驱动程序的原理和实现方法,掌握文件读写、设备驱动和错误处理等操作。

操作系统实验指导书

操作系统实验指导书

操作系统实验指导书一、实验说明1、实验目的实验是操作系统原理课程中不可缺少的重要教学环节,实验目的是使学生理论联系实际,使学生在实践探索中去发现问题、去解决问题,提高了学生获取知识和应用技术的能力,培养了学生分析和解决问题的能力。

《操作系统原理》要求理论与实践相结合,本门实验课程是对《操作系统原理》课堂教学的一个重要补充,与理论学习起着相辅相成的作用,是实施《操作系统原理》教学的一个重要组成部分。

通过本实验课的实践学习,可以增强本专业的学生对系统实现的认识。

对加深理解和掌握操作系统相关原理有重要帮助。

2、实验要求进一步了解和掌握操作系统原理,提高系统设计的能力。

对每一实验题目,应独立完成,并要求:·上机前,学生必须做好充分的实验准备工作,掌握与实验相关的背景知识,用任一种高级语言编写程序。

·上机时,认真调试,并观察、记录程序运行过程中出现的现象和问题。

·上机后,分析实验结果并写出实验报告。

3、实验报告要求每个实验(包括选做的)均应编写实验报告,学生实验后要写出严谨的、实事求是的、文字通顺的、字迹公整的实验报告。

实验报告应包括以下内容:(1)实验题目(2)实验目的(3)实验内容●程序中使用的数据结构及符号说明●流程图●源程序清单并附上注释(4)实验结果及分析●运行结果(必须是上面程序清单所对应输出的结果)●对运行情况所作的分析以及本次调试程序所取得的经验。

如果程序未能通过,应分析其原因。

二、实验内容实验一熟悉使用计算机系统一、实验名称:熟悉使用计算机系统二、实验目的与要求通过对Windows操作系统的使用,熟悉Windows操作系统中的基本概念,如单用户、多任务、进程和文件等,熟悉Windows中命令行方式下常用命令的使用方法;进一步熟悉TC语言与开发环境,为以后的实验打好基础。

三、实验内容1.开机后,熟悉Windows的界面(桌面、任务栏、开始按钮<点击后出现“开始”菜单>、我的电脑图标、回收站、我的文档)。

操作系统试验指导书

操作系统试验指导书

操作系统实验指导书实验1 存储管理1、实验目的存储管理的主要功能之一是合理地分配空间。

请求页式管理是一种常用的虚拟存储管理技术。

本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的技术特点,掌握请求页式存储管理的页面置换算法。

2、实验内容(1)通过随机数产生一个指令序列,共320条指令。

指令的地址按下述原则生成:①50%的指令是顺序执行的;②50%的指令是均匀分布在前地址部分;③50%的指令是均匀分布在后地址部分。

具体的实施方法是:①在 [0,319] 的指令之间随即选取一起点m;②顺序执行一条指令,即执行地址为m+1的指令;③在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m′;④顺序执行一条指令,其地址为 m′+ 1;⑤在后地址[m′+ 2,319]中随机选取一条指令并执行;⑥重复上述步骤①-⑤,直到执行320次指令。

(2)将指令序列变换为页地址流设:①页面大小为1k;②用户内存容量为4页到32页;③用户虚存容量为32k。

在用户虚存中,按每k存放10条指令排在虚存地址,即320条指令在虚存中的存放方式为:第0条-第9条指令为第0页(对应虚存地址为[0,9]);第10条-第19条指令为第一页(对应虚存地址为[10,19]);……第310条~第319条指令为第31页(对应虚地址为[310,319])。

按以上方式,用户指令可组成32页。

(3)计算并输出下述各种算法在不同内存容量下的命中率。

①先进先出的算法(FIFO);②最近最少使用算法(LRR);③最佳淘汰算法(OPT)先淘汰最不常用的页地址;④最少访问页面算法(LFR);⑤最近最不经常使用算法(NUR)。

其中③和④为选择内容。

命中率=1-页面失效次数/页地址流长度在本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。

3、随机数产生办法,Linux或UNIX系统提供函数strand()和rand(),分别进行初始化和产生随机数。

操作系统实验指导书及代码

操作系统实验指导书及代码

操作系统实验指导书及代码《操作系统》实验指导书目录实验环境 ................................................. 1 实验报告要求 ............................................. 1 实验一进程控制与处理机调度综合实验 ..................... 2 实验二存储管理与页面置换算法 (7)实验环境本课程实验硬件环境为PⅢ以上的处理器,带有显示器。

操作系统使用windows98以上操作系统,基本编程环境为Turbo C。

实验报告要求实验报告应包含以下内容:(1)实验题目(2)实验目的(3)实验环境(4)算法描述(5)程序源代码(6)出现的问题(7)对问题的解决方案(8)实验结果与结果分析(9)实验思考(学生对本次实验的收获的总结)实验一进程控制与处理机调度综合实验一、实验目的通过模拟进程控制方法及单处理机系统的进程调度,了解进程的结构,进程的创建与撤消,进程的组织及进程的状态及其转换,掌握进程调度策略。

二、实验学时4学时三、实验内容本实验为单机模拟进程调度算法,在程序设计时不需真正地建立线程或者进程。

实验模拟创建若干进程(人为输入或随机数产生),选择一种或几种单处理机的进程调度算法,如FCFS(先来先服务),SPF(短进程优先),RR(时间片轮转法),优先级算法等,模拟进行进程调度。

每进行一次调度,都打印一次运行进程、就绪队列、以及各个进程的PCB,并能在进程完成后及时撤消该进程。

四、算法描述1 进程及进程的运行状态进程是现代计算机中的基本要素,是系统分配资源和调度的基本单位。

进程与程序不同,进程是系统中动态的实体,有它的创建、运行和撤销的过程。

PCB块是系统感知进程存在的唯一实体。

进程的创建必须首先创建进程的PCB块,而进程的运行也伴随着PCB块的变化,进城撤销也要同时撤销它的PCB块。

所以本实验的任务就是通过模拟调度进程的PCB块来调度进程。

操作系统实验指导

操作系统实验指导

操作系统实验指导操作系统是计算机科学中的重要课程之一,通过实验可以让学生更好地理解和掌握操作系统的原理和功能。

本文将为大家介绍一些操作系统实验的指导。

一、实验准备在进行操作系统实验之前,需要先进行一些实验准备工作。

首先,需要安装一个操作系统,一般选择Linux或Windows。

其次,需要安装一些实验所需的软件和工具,例如编译器、调试器等。

此外,还需要准备一些实验材料,如实验手册、实验报告模板等。

二、实验目标每个操作系统实验都应该有明确的实验目标。

实验目标可以根据学生的实际情况和课程要求进行设定。

例如,可以通过实验来掌握进程管理、文件系统、内存管理等操作系统相关知识。

同时,实验目标应该具有可衡量性,可以通过实验结果来评估学生的实验成果。

三、实验内容1.进程管理实验:通过编写一个简单的多进程程序,来了解进程的创建、调度和终止等过程。

2.文件系统实验:通过创建、读写和删除文件,来了解文件系统的组织结构和基本操作。

3.内存管理实验:通过编写一个简单的分页存储管理程序,来了解分页存储管理的原理和实现方法。

4.设备管理实验:通过模拟设备的申请、释放和使用过程,来了解设备管理的原理和调度算法。

四、实验步骤每个操作系统实验都有具体的实验步骤,学生需要按照这些步骤进行实验。

以下是一些常见的实验步骤:1.实验环境准备:包括安装操作系统、配置软件和工具等。

2.实验预备:包括阅读实验手册、了解实验目标和要求等。

3.实验设计:根据实验目标和要求,设计实验方案和实验程序。

4.实验实施:按照实验方案和实验程序,进行实验操作并记录实验数据。

5.实验分析:根据实验数据,进行分析和总结,并得出实验结论。

6.实验报告:根据实验分析和总结,编写实验报告并提交。

五、实验评估实验结果的评估可以根据实验目标和要求来确定。

例如,如果实验目标是了解进程管理,可以通过观察进程的创建和调度情况来评估学生的实验结果。

实验报告的评估可以根据实验报告的内容和结构来确定。

操作系统实验指导书(新)

操作系统实验指导书(新)

目录实验一 WINDOWS进程初识 (3)1、实验目的 (3)2、实验内容和步骤 (3)3、实验结论 (5)4、程序清单 (5)实验二进程管理 (6)背景知识 (6)1、实验目的 (12)2、实验内容和步骤 (12)3、实验结论 (16)4、程序清单................... 错误!未定义书签。

实验三进程同步的经典算法 .. (17)背景知识 (17)1、实验目的 (19)2、实验内容和步骤 (19)3、实验结论 (22)4、程序清单................... 错误!未定义书签。

实验四存储管理 (23)背景知识 (23)1、实验目的 (31)2、实验内容和步骤 (31)3、实验结论 (48)4、程序清单................... 错误!未定义书签。

实验五文件和设备管理 (49)背景知识 (49)1、实验目的 (53)2、实验内容与步骤............. 错误!未定义书签。

3、实验结论................... 错误!未定义书签。

实验一WINDOWS进程初识1、实验目的(1)学会使用VC编写基本的Win32 Consol Application (控制台应用程序)。

(2)掌握WINDOWS API的使用方法。

(3)编写测试程序,理解用户态运行和核心态运行。

2、实验内容和步骤(1)编写基本的Win32 Consol Application步骤1:登录进入Windows,启动VC++ 6.0。

步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。

创建一个新的控制台应用程序工程。

步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。

计算机操作系统实验指导linux版王红玲源码

计算机操作系统实验指导linux版王红玲源码

计算机操作系统实验指导linux版王红玲源码操作系统实验是计算机科学专业学生必修的一门课程,通过实验可以增加学生对操作系统原理的理解和运用能力。

本文以Linux版王红祥操作系统实验指导为例,介绍实验的内容和相关源码。

一、实验内容王红祥操作系统实验主要包括以下几个方面的内容:1.操作系统的引导过程:通过编写汇编代码,实现在x86计算机上加载操作系统,并将CPU从实模式切换到保护模式。

2. 中断处理:实现Timer和UART中断的处理函数,并学习如何编写中断处理程序。

3.多进程管理:实现进程的创建、调度和切换,并学习如何用进程间通信的方式实现进程间的数据交换。

4.内存管理:实现内存的分配和回收,通过设计页表实现虚拟地址转换到物理地址。

5.文件系统:基于FAT12文件系统,实现文件的读取和写入功能,包括创建、删除和修改文件。

二、源码分析以下是王红祥操作系统实验中的一个源码例子,用于实现中断处理:```cvoid irq_handler(int irq)if (irq == TIMER_IRQ)} else if (irq == UART_IRQ)uart_handle(;}/*处理定时器中断的逻辑*/void uart_handle/*处理串口中断的逻辑*/int main/*设置中断处理函数*/set_irq_handler(IRQ0, irq_handler); set_irq_handler(IRQ1, irq_handler); /*启用中断*/enable_irq(IRQ0);enable_irq(IRQ1);/*主循环*/while (1)/*在这里执行其他的操作*/}return 0;```在main函数中,首先通过set_irq_handler函数设置了中断处理函数。

然后,通过enable_irq函数启用了IRQ0和IRQ1中断。

最后,采用死循环结构确保操作系统对中断的及时处理。

以上源码是王红祥操作系统实验中的一部分,通过学习和实践这些源码,可以更好地理解和掌握操作系统的原理和实现。

操作系统实验指导1

操作系统实验指导1

操作系统实验指导书楚雄师范学院计算机科学系操作系统课程组2011-9-20第一部分操作系统上机指导Linux操作系统环境:RedHat Enterprise Linux ES release 3 (Taroon Update 1) (2.4.21-9.EL)Red Flag Linux release 4.0 (HOT) (2.4)登录到系统常用命令练习:用root账号(超级用户)注册,口令为jkxroot(注意大小写)。

注册成功出现#号(超级用户系统提示符,普通用户的系统提示符为$)。

注销(退出)系统:logout 或exit3.练习使用命令ls(注意Linux命令区分大小写。

)使用ls 查看当前目录内容;使用ls 查看指定目录内容,如/目录,/etc目录使用ls –all 查看当前目录内容;使用dir 查看当前目录内容4.使用cd改变当前目录cd .. 回到上层目录;cd / 回到根目录5.pwd 显示当前路径6.建立目录mkdirmkdir 目录名;mkdir /home/s2001/newdir7.删除目录:rmdir;8.复制文件cp:如cp 文件名1 文件名29.移动文件或目录: mv10.删除文件rm11. 显示文件内容:more (分页显示);12. 显示文件:cat 文件名建立文件:cat >文件名,ctrl+d结束输入使用编辑器vi 编辑文件进入linux的文本模式之后,在命令行键入vi filename.c 然后回车。

下面作一些简单的解释:首先vi命令是打开vi编辑器。

后面的filename.c是用户即将编辑的c文件名字,注意扩展名字是.c;当然,vi编辑器功能很强,可以用它来编辑其它格式的文件,比如汇编文件,其扩展名字是.s;也可以直接用vi打开一个新的未命名的文件,当保存的时候再给它命名,只是这样做不很方便。

最基本的命令I :当进入刚打开的文件时,不能写入信息,这时按一下键盘上的I键(insert),插入的意思,就可以进入编辑模式了。

计算机操作系统实验指导linux版王红玲源码

计算机操作系统实验指导linux版王红玲源码

计算机操作系统实验指导linux版王红玲源码【原创版】目录一、计算机操作系统实验指导的意义和目的二、Linux 系统的概述和特点三、计算机操作系统实验指导 Linux 版的内容四、王红玲源码的介绍和应用五、如何进行计算机操作系统实验六、总结正文一、计算机操作系统实验指导的意义和目的计算机操作系统是计算机系统中最基本的系统软件之一,它管理计算机硬件资源和提供应用程序运行环境。

学习计算机操作系统对于计算机专业的学生来说是非常重要的,而通过实验来学习和理解计算机操作系统则是一种非常有效的方式。

计算机操作系统实验指导的目的是为了帮助学生通过实践来深入理解和掌握计算机操作系统的原理和实现。

二、Linux 系统的概述和特点Linux 是一种免费使用和自由传播的类 UNIX 操作系统,其内核由林纳斯·本纳第克特·托瓦兹于 1991 年首次发布。

Linux 系统具有多用户、多任务、支持多线程和多 CPU 的特点,能运行主要的 Unix 工具软件、应用程序和网络协议。

Linux 系统在服务器领域和开发领域受到广泛欢迎,很多程序员都认为掌握 Linux 是必备的技能。

三、计算机操作系统实验指导 Linux 版的内容计算机操作系统实验指导 Linux 版主要包括以下几个方面:1.Linux 系统的基本操作和配置:包括 Linux 系统的安装、配置和管理,以及 Linux 命令的使用和操作。

2.Linux 系统下的程序设计和开发:包括 Linux 系统下的 C 语言编程、Python 编程等。

3.Linux 系统下的网络配置和应用:包括 Linux 系统下的网络协议、网络配置和网络应用等。

4.Linux 系统下的数据库管理和应用:包括 Linux 系统下的 MySQL、MongoDB 等数据库的管理和应用。

四、王红玲源码的介绍和应用王红玲源码是一套非常实用的 Linux 系统教程,它包括 Linux 系统的基本操作、程序设计和开发、网络配置和应用、数据库管理和应用等方面的内容。

操作系统实验

操作系统实验

《操作系统》实验指导书德州学院计算机系实验一理解和认识操作系统的三种接口1.目的和要求MS-DOS和Windows是市场上普及率很高的操作系统,本实验的目的是让读者从操作系统理论的观点加深对现代操作操作系统的接口设计的理解。

2.实验内容①熟悉DOS的基本命令,包括md,cd,copy,move,del,deltree,type 等的使用a、当前目录下建立子目录MYTEMP和MYTEMP2,将当前目录设定为MYTEMP;b、在当前目录下创建新文件B.BAT,其内容为:清除屏幕内容,显示当前DOS版本;c、使用type命令显示B.BAT的内容,检查正确后,执行它;d、拷贝B.BAT到路径MYTEMP中;e、删除MYTEMP2中的文件B.BAT,删除目录MYTEMP2;f、使用deltree命令删除MYTEMP②理解WINDOWS下的编程接口原理,了解WINAPI,利用WINAPI实现WINDOWS 下的打印。

a、登录进入Windowsb、在“开始”菜单中单击“程序”-“Microsoft Visual Studio 6.0”-“MicrosoftVisual C++ 6.0”命令,进入Visual C++ 窗口。

c、在File菜单单击New Workspace...命令,创建PrintApp.dsw项目文件。

d、在File菜单单击New C++ Soure file命令,创建新的原文件。

e、输入如实验运行结果中所示的源代码,调试、编译并运行。

f、观察执行结果,理解各个函数的功能。

3.实验环境Windows操作系统和Visual C++6.0专业版或企业版实验二复习用C语言编制程序一、实验内容选择一个计算机系统,熟悉该系统的操作命令,且掌握该计算机系统的使用方法。

二、实验目的配合操作系统课程的学习,模拟实现操作系统的功能,有助于对操作系统的理解。

操作系统功能的模拟实现可以在计算机系统的终端上进行,也可以在一台微型计算机上进行。

《操作系统》实验指导书

《操作系统》实验指导书

操作系统实验指导书专业:计算机科学与技术;软件工程课程名称:操作系统课程类别:专业必修课计算机与通信工程学院2009目录第1篇Linux操作系统使用 (1)实验1Linux系统的安装及基本操作 (1)实验2Linux 的常用命令与基本管理 (38)第2篇操作系统算法模拟 (53)实验1 银行家算法 (53)实验2 进程调度 (55)实验3 动态分区分配 (56)实验4 页式存储管理 (57)实验5 虚拟存储管理器的页面调度 (59)实验6 文件管理 (62)实验7 磁盘存储空间的分配与回收 (64)实验8 磁盘调度 (66)附录 (67)实验1报告写法 (67)实验2报告的写法 (67)算法模拟部分 (68)第1篇Linux操作系统使用实验1Linux系统的安装及基本操作一、实验目的1.掌握Red Hat Enterprise Linux 5的安装方法。

2.了解Linux操作系统的启动与登录方法。

3.掌握Red Hat Linux图形用户界面下的基本操作。

二、实验工具与设备1.实验工具:Red Hat Enterprise Linux 5光盘或镜像文件。

2.实验设备:计算机(带CD-ROM)一台。

三、实验预备知识虚拟机简介虚拟机,顾名思义就是虚拟出来的电脑,这个虚拟出来的电脑和真实的电脑几乎完全一样,所不同的是他的硬盘是在一个文件中虚拟出来的,所以你可以随意修改虚拟机的设置,而不用担心对自己的电脑造成损失。

虚拟机中有自己的CPU、主板、内存、BIOS、显卡、硬盘、光驱、软驱、网卡、声卡、串口、并口和US B等设备。

Vmware介绍Vmware是一个“虚拟PC”软件。

它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。

与“多启动”系统相比,VMWare采用了完全不同的概念。

多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。

VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就象标准Wi ndows应用程序那样切换。

计算机操作系统实验指导linux

计算机操作系统实验指导linux

计算机操作系统实验指导linuxLinux 操作系统实验指导一、快速安装Linux系统1. 搭建实验环境:下载Linux系统的安装CD或者U盘,由于安装CD可能比较老旧,建议使用U盘来加载Linux系统;2. Bios 及设置:根据启动项的设置,调整U盘或者CD-ROM的读取顺序;3. 分割机制:根据自身的实验需求,给每一块磁盘分配大小;4. 安装系统:根据linux系统的提示安装相应的组件,设置root分区,系统更新;二、Linux系统外观设置1. 登录系统:输入用户名和密码,登录系统,添加用户及其权限管理;2. 更改外观:安装特定的主题,进行界面的更改,开机启动动画,桌面背景设置;3. 调整桌面图标:添加快捷方式,右键菜单管理,图标的拖拽安排等;4. 桌面快捷键:设置快捷键,方便操作,减少重复点击。

三、Linux系统安全设置1. 系统安全:安装安全软件,设置防火墙,锁定系统认证;2. 用户安全:设置不同用户权限,登陆账号管理,安装安全软件;3. 应用安全:安装反病毒软件,进行网页浏览拦截,异常端口禁止;4. 系统备份:制定机器备份计划,在恰当的时间进行备份操作。

四、Linux系统维护1. 系统维护:检查内存资源,检查OS系统补丁,维护系统文件;2. 进程管理:搜索指定进程,加进行结束操作,网络监控,作业管理;3. 系统日志:解析系统日志,及时发现系统异常,安装定期重启系统;4. 资源管理:查看磁盘使用情况,清理无用磁盘空间,升级硬件驱动,调整硬件参数。

五、Linux环境编程1. 配置编译环境:管理编程工具,安装gcc编译环境,程序与调试;2. 写入程序语言:使用C或者C++等语言,编写程序,将程序源文件保存;3. 编译源程序:使用gcc编译程序,在程序的源码中添加头文件,编译检查程序;4. 运行程序:测试程序,调试程序,看看程序的运行效果,分析程序运行的错误。

六、Linux系统优化1. 优化硬件设备:升级GB、CPU、内存,新增硬盘等;2. 添加新软件:查找新的功能模块,优化系统性能;3. 系统定期检查:软硬件保护,程序性能优化,重新启动程序,更新软硬件驱动;4. 调整显示器的分辨率:根据分辨率的不同,调整显示器的屏幕大小,细化界面效果和位置;5. 系统内存设置:调整系统内存性能,调整内存大小,加快系统加载速度。

计算机操作系统实验指导linux版王红玲源码

计算机操作系统实验指导linux版王红玲源码

计算机操作系统实验指导linux版王红玲源码(原创实用版)目录一、计算机操作系统实验指导概述1.1 计算机操作系统实验指导的目的和意义1.2 计算机操作系统实验指导的内容和特点1.3 计算机操作系统实验指导的适用对象和范围二、Linux 操作系统简介2.1 Linux 的历史和发展2.2 Linux 的特点和优势2.3 Linux 的应用领域三、计算机操作系统实验指导的具体内容3.1 实验篇3.1.1 实验目的和要求3.1.2 实验环境和工具3.1.3 实验内容和步骤3.2 课程设计篇3.2.1 课程设计目的和要求3.2.2 课程设计环境和工具3.2.3 课程设计题目和指导3.3 习题篇3.3.1 习题的目的和作用3.3.2 习题的类型和难度3.3.3 习题的答案和解析四、计算机操作系统实验指导的使用方法和建议4.1 实验方法和技巧4.2 学习方法和策略4.3 教学方法和建议五、计算机操作系统实验指导的评价和反馈5.1 实验指导的评价标准和方法5.2 实验指导的反馈和改进正文一、计算机操作系统实验指导概述计算机操作系统实验指导是为了帮助学生更好地理解和掌握计算机操作系统的原理和实现,提高学生的实际操作能力和解决问题的能力而编写的。

它对于学生学习计算机操作系统课程具有重要的意义和作用。

计算机操作系统实验指导的内容主要包括实验篇、课程设计篇和习题篇。

实验篇主要是通过实验让学生了解和熟悉计算机操作系统的基本原理和操作;课程设计篇则是通过课程设计让学生深入理解和掌握计算机操作系统的实现原理和方法;习题篇则是通过大量的习题训练学生的计算机操作系统知识。

计算机操作系统实验指导适用于计算机相关专业的学生,以及对计算机操作系统有兴趣和需求的人员。

二、Linux 操作系统简介Linux 是一款免费使用和自由传播的类 UNIX 操作系统,其内核由林纳斯·本纳第克特·托瓦兹于 1991 年首次发布。

操作系统实验指导完整版

操作系统实验指导完整版

操作系统实验指导适用课程:操作系统适用专业:计算机科学与技术软件工程目录实验环境的使用 (3)操作系统的启动 (11)进程的创建 (16)进程的同步 (22)时间片轮转调度 (29)分页存储器管理 (33)设备驱动程序 (40)FAT12文件系统 (46)实验环境的使用实验性质:验证建议学时:2学时一、实验目的●熟悉操作系统集成实验环境OS Lab的基本使用方法。

●练习编译、调试EOS操作系统内核以及EOS应用程序。

二、预备知识阅读《EOS实验指南》第一章,对EOS操作系统和集成实验环境有一个初步的了解。

三、实验内容3.1 启动OS Lab1.在安装有OS Lab的主机上,可以使用两种不同的方法来启动OS Lab:●在桌面上双击“Tevation OS Lab”图标。

●点击“开始”菜单,在“程序”中的“Tevation OS Lab”中选择“TevationOS Lab”。

2.OS Lab每次启动后都会首先弹出一个用于注册用户信息的对话框(可以选择对话框标题栏上的“帮助”按钮获得关于此对话框的帮助信息)。

在此对话框中填入学号和姓名后,点击“确定”按钮完成本次注册。

3.观察OS Lab主窗口的布局。

OS Lab主要由下面的若干元素组成:菜单栏、工具栏以及停靠在左侧和底部的各种工具窗口,余下的区域用来放置编辑器窗口。

3.2 学习OS Lab的基本使用方法通过练习使用OS Lab编写一个Windows控制台应用程序,熟悉OS Lab的基本使用方法(包括新建项目、生成项目、调试项目等)。

3.2.1 新建Windows控制台应用程序项目新建一个Windows控制台应用程序项目的步骤如下:1.在“文件”菜单中选择“新建”,然后单击“项目”。

2.在“新建项目”对话框中,选择项目模板“控制台应用程序(c)”。

3.在“名称”中输入新项目使用的文件夹名称“oslab”。

4.在“位置”中输入新项目保存在磁盘上的位置“C:\Test”。

操作系统本科实验指导书

操作系统本科实验指导书

操作系统实验指导书实验1 操作系统环境通过调查研究活动和对Windows、Linux系统运行的观察分析,回顾计算环境的基本术语,加深理解有关操作系统的基础概念,掌握主流操作系统的命令和图形界面,学会在操作系统上的主要系统管理操作。

1.1 操作系统的计算环境1.2 Windows xp系统管理1.3 访问Linux系统§1.1 操作系统的计算环境背景知识本实验帮助回顾 Windows xp/XP、UNIX和Linux的计算环境术语,加深理解有关操作系统的基础概念。

调查在学校或其他机构中Windows、UNIX和Linux的使用情况,看哪些机构在使用Windows、UNIX或者Linux系统;研究Web站点,看哪些因特网网站 (尤其是简体中文网站) 分别支持着Windows、UNIX和Linux操作系统的应用。

实验目的通过实验,加深对以下内容的理解基本的计算机硬件组件;计算机操作系统;Windows的发展和版本UNIX和Linux的历史和版本;Windows xp、UNIX或Linux操作环境。

调查在机构、学校和学生中Windows、UNIX和Linux操作系统的使用情况,分别研究支持Windows和Linux的Web站点。

工具/准备工作在开始本实验之前,请回顾教科书的相关内容,联系指导老师或者熟识网络技术的人士,如学校或企业信息技术部门的职员,了解学校或者其他机构中使用了哪些服务器和网络操作系统,找出是否在用Windows NT/2000/XP、UNIX和Linux以及在哪里使用这些操作系统,需要准备一台带有浏览器,能够访问因特网的计算机。

实验内容与步骤2、复习3个概念:内核、shell、文件系统3、 Windows xp/XP操作系统的主要优点是什么?4、UNIX操作系统的主要优点是什么?5、Linux操作系统的主要优点是什么?6、列举Linux操作系统的主要组成部分7、Linux内核管理着哪几件事情?8、Linux系统的主要shell的名字和它们各自默认的提示符是什么?9、操作系统的文件系统由哪几部分组成的?10、在指导老师或者信息技术人员的帮助下,找出在学校或者其他机构中使用的几种操作系统。

计算机操作系统实验指导linux版王红玲源码

计算机操作系统实验指导linux版王红玲源码

计算机操作系统实验指导linux版王红玲源码计算机操作系统实验指导(Linux版)导言:计算机操作系统是计算机系统中最重要的软件之一,负责管理计算机系统的硬件和软件资源,并为用户提供良好的使用环境。

为了帮助学生更好地理解操作系统的原理和实现,我们开设计算机操作系统实验课程,并提供一份针对Linux操作系统的实验指导。

本实验指导旨在帮助学生通过实际编程来探索和理解操作系统的原理和实现方式。

通过完成本实验,学生将能够熟悉Linux操作系统的基本功能和原理,并学会使用Linux的命令行界面和Shell编程。

同时,本实验还将引导学生通过源代码的阅读和分析,深入理解操作系统内部的工作原理。

实验一:Linux环境搭建在开始实验之前,我们首先需要搭建一个适合的Linux开发环境。

学生可以选择在个人电脑上安装Linux发行版,如Ubuntu或Fedora,也可以使用虚拟机软件,如VirtualBox或VMware,在Windows或Mac OS上安装Linux虚拟机。

实验二:Linux基本操作和Shell编程在本实验中,学生将通过完成一系列实际任务来熟悉Linux的基本操作和Shell编程。

任务包括使用命令行界面进行文件和目录操作、执行Shell脚本、配置系统环境等。

学生需要按照指导完成每个任务,并理解每个任务的目的和原理。

实验三:Linux系统调用和进程管理在本实验中,学生将学习和实现Linux系统调用和进程管理的功能。

学生需要阅读和分析Linux内核源代码中与系统调用和进程管理相关的部分,并完成一系列与之相关的实验任务。

任务包括编写和调试系统调用、创建和管理进程、实现进程间通信等。

实验四:Linux内存管理和文件系统在本实验中,学生将学习和实现Linux内存管理和文件系统的功能。

学生需要阅读和分析Linux内核源代码中与内存管理和文件系统相关的部分,并完成一系列与之相关的实验任务。

任务包括实现内存分配算法、设计和实现文件系统、调试和优化内存和文件系统的性能等。

操作系统实验指导书

操作系统实验指导书

《操作系统》课程实验指导书信电工程学院2011年9月目录前言 (1)实验要求 (2)实验准备 (3)实验一处理机管理 (4)实验二存储管理 (7)实验三设备管理 (10)实验四文件管理 (14)前言“操作系统”是计算机及相关专业的必修课程,在学习计算机操作系统理论的同时,通过实验可以加强对操作系统基本原理的理解。

让学生通过上机实验验证计算机操作系统的难点,增加学生对计算机操作系统的领悟和掌握。

使学生对计算机操作系统的工作原理和工作过程有深刻的体会和理解,同时又锻炼了程序编制能力和学生创造能力。

本课程共设8个学时,实验主要由进程管理、存储管理、设备管理、文件管理等4个主要几个部分所组成。

其中验证类实验占25%、设计类实验占75%,每个实验2学时。

考虑由于学生C语言基础较并且不平衡,本课程实验安排了实验准备(由学生课下完成),主要了解掌握TurboC2.0编程环境、掌握C语言编程的基本编制方法和技巧,为后继的实验做准备。

这些实验能很好地解决配合操作系统课程教学来指导学生进行实践的问题。

实验要求1.学生按照实验要求,上机前写好上机实验预习报告,内容包括:实验的目的、内容、实验步骤(程序)。

2.上机实验时按实验要求完成每一个实验的内容。

3.课后认真书写实验报告。

实验报告采用统一的实验报告纸,实验封面包括:课程名称、实验名称、实验序号、班级、姓名、学号、实验时间。

实验报告书写规范,应包括:实验目的和要求、实验内容、实验步骤、实验记录(程序)。

4.遵守机房纪律,服从辅导员教师指挥,爱护实验设备。

5.实验课程不迟到。

如有事不能出席,所缺实验一般不补。

实验准备一.实验目的熟悉TurboC2.0基本编程环境掌握C语言的基本编程方法二.实验内容与要求(一)TurboC2.0的基本操作1、TurboC2.0的基本操作2、运行一个C语言程序的一般过程3、编辑并保存存一个C语言程序4、编译、链接源程序文件5、运行与查看程序结果(二)C语言程序的基本编程方法1、数据类型、运算符、表达式2、数据的输入、输出3、C语言程序的基本控制结构4、数组5、函数与程序结构6、指针7、结构与联合8、文件操作(可通过网络查找TurboC2.0用户说明书,并在其指导进行操作,并要求人手一本C语言程序设计教材并上机练习)实验一处理机管理一、掌握进程及进程调度的概念、三种基本状态及转换二、实验内容1、复习进程的概念、进程调度的含义、进程的三种基本状态及转换2、编制一个模拟进程调度的程序三、参考程序#include"stdio.h"#define running 1/*用running表示进程处于运行状态*/#define aready 2/*用aready表示进程处于就绪状态*/#define blocking 3/*用blocking表示进程处于等待状态*/#define sometimes 5/*用sometime表示时间片大小*/#define n 10/*假定系统允许进程个数为10*/struct{int name;/*进程标识符*/int status;/*进程状态*/int ax,bx,cx,dx;/*进程现场信息,通用寄存器内容*/int pc;/*进程现场信息,程序计数器内容*/int psw;/*进程现场信息,程序状态寄存器内容*/int next;/*下一个进程控制块的位置*/}pcbarea[n];/*定义模拟进程控制块区域的数组*/int PSW,AX,BX,CX,DX,PC,TIME;/*模拟寄存器*/int run;/*定义指向正在运行进程的进程控制块的指针*/struct{int head;int tail;}ready;/*定义指向正在运行进程的进程控制块的指针*/int block;/*定义指向等待队列的指针*/int pfree;/*定义指向空闲进程控制块队列的指针*/sheduling()/*进程调度函数*/{int i;if(ready.head==-1)/*空闲进程控制块队列的指针*/{printf("无就绪进程\n");return 0;}i=ready.head;/*就绪队列头指针赋给i*/ready.head=pcbarea[ready.head].next;/*就绪队列头指针后移*/if(ready.head==-1) ready.tail=-1;/*就绪队列为空,修正尾指针 ready.tail*/pcbarea[i].status=running;/**/TIME=sometimes;/*设置相对时钟寄存器*//*恢复该进程现场信息*/AX=pcbarea[run].ax;BX=pcbarea[run].bx;CX=pcbarea[run].cx;DX=pcbarea[run].dx;PC=pcbarea[run].pc;PSW=pcbarea[run].psw;/*修改指向运行进程的指针*/run=i;return 0;}/*进程调度函数结束*/create(int x)/*创建进程*/{int i;if(pfree==-1)/*空闲进程控制块队列为空*/{printf("无空闲进程控制块,进程创建失败\n");return 0;}i=pfree;/*取空闲进程控制块队列的第一个*/pfree=pcbarea[pfree].next;/*pfree后移*//*填写该进程控制内容:*/pcbarea[i].name=x;pcbarea[i].status=aready;pcbarea[i].ax=x;pcbarea[i].bx=x;pcbarea[i].cx=x;pcbarea[i].dx=x;pcbarea[i].pc=x;pcbarea[i].psw=x;if(ready.head!=-1){/*就绪队列不空时,挂入就绪队列方式*/pcbarea[ready.tail].next=i;ready.tail=i;pcbarea[ready.tail].next=-1;}else{/*就绪队列为空时,挂入就绪队列方式*/ready.head=i;ready.tail=i;pcbarea[ready.tail].next=-1;}return 0;}/*进程创建函数结束*/main(){/*系统初始化*/int num,j;run=ready.head=ready.tail=block=-1;pfree=0;for(j=0;j<n-1;j++)pcbarea[j].next=j+1;pcbarea[n-1].next=-1;printf("输入进程编号(避免编号的冲突,以负数输入结束,最多可以创建10个进程):\n");scanf("%d",&num);while(num>0){create(num);scanf("%d",&num);}sheduling();if(num!=-1){printf("进程名进程状态寄存器内容:ax bx cx dx pc psw:\n");printf("%4d%10d%3d%3d%3d%3d%3d%3d\n",pcbarea[run].name,pcbarea[run].status,pcbarea[ run].ax,pcbarea[run].bx,pcbarea[run].cx,pcbarea[run].dx,pcbarea[run].pc,pcbarea[run ].psw);}}/*main结束*/实验二存储管理一、实验目的掌握分页存储管理的基本原理及分页存储管理中的地址变换过程二、实验内容1、复习分页想念管理的基本概念、基本原理、及地址变换过程2、编制一个模拟地址变换过程的程序三、参考程序/*页式虚拟存储管理中地址转换和缺页中断的模拟*/#include"stdio.h"#define n 64/*模拟实验中假定的页表长度*/#define length 10struct{int lnumber;/*页号*/int flag;/*表示该页是否在主存,"1"表示在主存,"0"表示不在*/int pnumber;/*该页所在主存块的块号*/int write;/*该页号是否被修改,"1"表示修改过,"0"表示末修改过*/ int dnumber;/*该页存放在磁盘上的位置,即磁盘块号*/}page[n];/*页表定义*/int m;/*m为该作业在主存中的主存块块数*/int page_length;/*页表实际长度*/int p[length];/*存放在主存中页的页号*/int head;/*主存中页号队列*/page_interrupt(lnumber)int lnumber;{int j;printf("发生缺页中断*%d\n",lnumber);/*淘汰页*/j=p[head];p[head]=lnumber;head=(head+1)%m;if(page[j].write==1)printf("将页%d写回磁盘第%d块\n",j,page[j].dnumber);page[j].flag=0;/*第j页存在标志改为"0"*/page[lnumber].pnumber=page[j].pnumber;page[lnumber].flag=1;/*第lnumber页存在标志改为"0"*/page[lnumber].write=0;/*第lnumber页修改标志改为"1"*/printf("淘汰主存块%2d中的页%2d从磁盘第%d块中调入页%2d\n",page[j].pnumber,j,page[lnumber].dnumber,lnumber);}/*缺页中断处理函数结束*/void command(laddress,write)unsigned laddress;int write;{int paddress,ad,pnumber,lnumber;kk:/*取出逻辑地址laddress的页号lnumber(高6位)和页内地址ad*/ lnumber=laddress>>10;ad=laddress&0x3ff;if(lnumber>=page_length){printf("不存在该页\n");}if(page[lnumber].flag==1)/*页在主存*/{pnumber=page[lnumber].pnumber;/*从页表中取得块号*/paddress=pnumber<<10|ad;/*合并块号和块内地址形成物理地址padress*/printf("逻辑地址是:%x 对应的物理地址是%x\n:",laddress,paddress);}if(write==1)/*如果需要写,修改页的修改标志位*/page[lnumber].write=1;else{page_interrupt(lnumber);/*缺页中断*/goto kk;}}/*命令处理函数结束*/void main(){int lnumber,pnumber,write,dnumber;unsigned laddress;int i;/*输入页表信息,页号从0开始,依次编号,创建页表page*/printf("输入页表信息,创建页表(若页号为-1,则结束输入\n");printf("输入页号和辅存地址");scanf("%d%d",&lnumber,&dnumber);i=0;while(lnumber!=-1){page[i].lnumber=lnumber;page[i].flag=0;page[i].write=0;page[i].dnumber=dnumber;i++;printf("输入页号和辅存地址");scanf("%d%d",&lnumber,&dnumber);}page_length=i;printf("输入主存号,主存块数要小于%d,(以-1结束):",i);scanf("%d",&pnumber);m=0;head=0;while(pnumber!=-1){if(m<=i){page[m].pnumber=pnumber;page[m].flag=1;p[m]=m;m++;}scanf("%d",&pnumber);}printf("输入指令性质(1-修改,0-不需要,其他--结束程序运行)和逻辑地址:");scanf("%d%x",&write,&laddress);while(write==0||write==1){command(laddress,write);/**/printf("输入指令性质(1-修改,0-不需要,其他--结束程序运行)和逻辑地址:");scanf("%d%x",&write,&laddress);}}/*函数结束*/实验三设备管理一、实验目的了解设备管理的基本原理、设备的分配与回收过程二、实验内容1、复习设备管理的基本概念、基本原理、常用的数据结构、分配策略及算法2、编制一个独占设备的分配和回收模拟程序三、参考程序/*独占设备的分配和回收模拟*/#include"stdio.h"#include"string.h"#define false 0#define true 1#define n 4#define m 10struct{char type[10];/*设备类名*/int count ;/*拥有设备台数*/int remain;/*现存的可用设备台数*/int address;/*该类设备在设备表中的起始地址*/}equiptype[n];/*设备类表定义,假定系统有N个设备类型*/struct{int number;/*设备绝对号*/int status;/*设备好坏状态*/int remain;/*设备是否已分配*/char jobname[4];/*占有设备的作业名*/int lnumber;/*设备相对号*/}equipment[m];/*设备表定义,假定系统有M个设备*/allocate(char J[],char type[],int mm){int i,t;/*查询该类设备*/i=0;while(i<n&&strcmp(equiptype[i].type,type)!=0)i++;if(i>=n)/*没有找到该类设备*/{printf("无该类设备,设备分配失败");return(false);}if(equiptype[i].remain<1)/*所需设备现存可用台数不足*/{printf("该类设备不足,分配失败");return(false);}t=equiptype[i].address;/*取出该类设备在设备表中的起始地址*/while(!(equipment[t].status==1&&equipment[t].remain==0))t++;/*填写作业名、相对号,状态改为已分配*/equiptype[i].remain--;equipment[t].remain=1;strcpy(equipment[t].jobname,J);equipment[t].lnumber=mm;}/*设备分配函数结束*/reclain(char J[],char type[]){int i,t,j,k,nn;i=0;while(i<n&&strcmp(equiptype[i].type,type)!=0)i++;if(i>=n)/*没有找天该类设备*/{printf("无该类设备,设备回收失败");return(false);}t=equiptype[i].address;/*取出该类设备在设备表中的起始地址*/ j=equiptype[i].count;/*取出该类设备的数量*/k=0;nn=t+j;for(;t<nn;t++)if(strcmp(equipment[t].jobname,J)==0&&equipment[t].remain==1) {equipment[t].remain=0;k++;}equiptype[i].remain=equiptype[i].remain+k;if(k==0)printf("该作业没有使用该类设备\n");}/*设备收回函数结束*/main(){char J[4];int i,mm,a;char type[10];/*设备类表初始化:*/strcpy(equiptype[0].type,"input");/*输入机*/equiptype[0].count=2;equiptype[0].remain=2;equiptype[0].address=0;strcpy(equiptype[1].type,"printer");/*打印机*/equiptype[1].count=3;equiptype[1].remain=3;equiptype[1].address=2;strcpy(equiptype[2].type,"disk");/*磁盘机*/equiptype[2].count=4;equiptype[2].remain=4;equiptype[2].address=5;strcpy(equiptype[3].type,"tape");/*磁带机*/equiptype[3].count=1;equiptype[3].remain=1;equiptype[3].address=9;/*设备表初始化:*/for(i=0;i<10;i++){equipment[i].number=i;equipment[i].status=1; //343434equipment[i].remain=0;}while(1){printf("\n0-退出,1-分配,2-回收,3-显示");printf("\n选择功能项(0-3):");scanf("%d",&a);switch(a){case 0:/*程序结束*/return(false) ;case 1:/*a=1分配设备*/printf("输入作业名、作业所需设备类和设备相对号");scanf("%s%s%d",J,type,&mm);allocate(J,type,mm);/*分配设备*/break;case 2:/*a=2回收设备*/printf("输入作业名和作业归还的设备类");scanf("%s%s",J,type);reclain(J,type);/*回收设备*/break;case 3:/*a=3输出设备类表和设备表的内容*/printf("\n输出设备类表\n");printf(" 设备类型设备总量空闲好设备\n");for(i=0;i<n;i++)printf("%9s%8d%9d\n",equiptype[i].type,equiptype[i].count,equiptype[i].remain); printf("输出设备表:\n");printf("绝对号好/坏已/未分配占用作业名相对号\n");for(i=9;i<m;i++)printf("%3d%8d%9d%12s%8d\n",equipment[i].number,equipment[i].status,equipment[i].remain,equipment[i].jobname,equipment[i].lnumber);}}}。

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

计算机专业《操作系统》实验指导书网络和信息安全教研室计算机专业《操作系统》实验指导书实验一 Linux系统的安装一、实验目的1、深入认识磁盘分区2、掌握Linux安装的基本过程3、掌握多系统共存的系统安装方法二、实验任务在现有系统安装Redhat Linux系统,注意不要破坏现有系统。

三、实验指导参考《Linux上机实践教程》第一章内容。

实验二 Linux系统的基本使用一、实验目的1、熟悉linux系统的启动、登入和退出2、熟悉linux系统文件和目录的基本使用3、熟悉其它常用命令及虚拟终端的使用4、体会linux系统作为分时系统的特点二、实验任务启动、登入和退出linux系统练习使用文件和目录操作的基本命令使用它常用命令及虚拟终端练习使用Vi编辑器三、实验指导参考《Linux上机实践教程》第二、三章内容。

实验三 windows 2000中进程的创建和控制一、实验目的1、加深对进程概念的理解,明确进程和程序的区别2、进一步认识进程并发执行的实质3、掌握windows 2000中进程创建和控制的编程方法二、实验任务创建一个windows窗口程序,含有4个菜单项,分别用来创建和撤消记事本进程和计算器进程。

若相应进程已经创建了,再选择创建进程菜单,则弹出对话框提示进程已经创建;若进程已经撤消了,再选择撤消进程菜单,则弹出对话框提示进程已经撤消。

注意考虑从主程序外部启动和关闭进程的情况。

三、实验指导1、Win32的进程的概念进程是应用程序的运行实例,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。

一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主线程。

进程要完成什么事情的话必须至少拥有一个线程,由线程来负责执行包含在地址空间的代码。

2、Win32的进程的创建Windows所创建的每个进程都从调用CreateProcess() API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象。

CreateProcess() 调用的核心参数是可执行文件运行时的文件名及其命令行。

下表详细地列出了每个参数的类型和名称。

可以指定第一个参数,即应用程序的名称,其中包括相对于当前进程的当前目录的全路径或者利用搜索方法找到的路径;lpCommandLine参数允许调用者向新应用程序发送数据;接下来的三个参数与进程和它的主线程以及返回的指向该对象的句柄的安全性有关。

然后是标志参数,用以在dwCreationFlags参数中指明系统应该给予新进程什么行为。

经常使用的标志是CREATE_SUSPNDED,告诉主线程立刻暂停。

当准备好时,应该使用ResumeThread() API来启动进程。

另一个常用的标志是CREATE_NEW_CONSOLE,告诉新进程启动自己的控制台窗口,而不是利用父窗口。

这一参数还允许设置进程的优先级,用以向系统指明,相对于系统中所有其他的活动进程来说,给此进程多少CPU时间。

接着是CreateProcess() 函数调用所需要的三个通常使用缺省值的参数。

第一个参数是lpEnvironment参数,指明为新进程提供的环境;第二个参数是lpCurrentDirectory,可用于向主创进程发送与缺省目录不同的新进程使用的特殊的当前目录;第三个参数是STARTUPINFO数据结构所必需的,用于在必要时指明新应用程序的主窗口的外观。

CreateProcess() 的最后一个参数是用于新进程对象及其主线程的句柄和ID的返回值缓冲区。

以PROCESS_INFORMA TION结构中返回的句柄调用CloseHandle() API函数是重要的,因为如果不将这些句柄关闭的话,有可能危及主创进程终止之前的任何未释放的资源。

3、终止进程所有进程都是以调用ExitProcess() 或者TerminateProcess() 函数结束的。

但最好使用前者而不要使用后者,因为进程是在完成了它的所有的关闭“职责”之后以正常的终止方式来调用前者的。

而外部进程通常调用后者即突然的进行,由于关闭时的途径不太正常,有可能引起错误的行为。

TerminateProcess() API函数只要打开带有PROCESS_TERMINATE访问权的进程对象,就可以终止进程,并向系统返回指定的代码。

这是一种“野蛮”的终止进程的方式,但是有时却是需要的。

4、如何判断一个进程是否启动或终止?如果一个进程的启动或终止完全由主进程控制,只需引入一个标志进行判断即可。

如果外部可以控制进程的启动或终止,则情况要复杂一些。

通常由两种方法,一是根据进程的程序名称,查询系统所有进程,以确定该程序是否已经运行。

另一种方法是根据进程的窗口标题获得窗口句柄,再根据窗口句柄获得相应的程序名称,以确定该程序是否已经运行。

以下是相关的API函数,可查阅MSDN:HANDLE WINAPI CreateToolhelp32Snapshot(DWORD dwFlags,DWORD th32ProcessID );BOOL WINAPI Process32First(HANDLE hSnapshot,LPPROCESSENTRY32 lppe );BOOL WINAPI Process32Next(HANDLE hSnapshot,LPPROCESSENTRY32 lppe );HWND FindWindow(LPCTSTR lpClassName, // pointer to class nameLPCTSTR lpWindowName // pointer to window name);UINT WINAPI GetWindowModuleFileName(HWND hwnd,LPTSTR lpszFileName,UINT cchFileNameMax);5、程序实例本程序显示了创建子进程的基本框架。

该程序只是再一次地启动自身,显示它的系统进程ID和它在进程列表中的位置。

# include <windows.h># include <iostream># include <stdio.h>// 创建传递过来的进程的克隆过程并赋于其ID值void StartClone(int nCloneID){// 提取用于当前可执行文件的文件名TCHAR szFilename[MAX_PA TH] ;:: GetModuleFileName(NULL, szFilename, MAX_PA TH) ;// 格式化用于子进程的命令行并通知其EXE文件名和克隆IDTCHAR szCmdLine[MAX_PA TH] ;:: sprintf(szCmdLine, “\”%s\” %d”, szFilename, nCloneID) ;// 用于子进程的STARTUPINFO结构STARTUPINFO si;:: ZeroMemory(reinterpret_cast <void*> (&si) , sizeof(si) ) ;si.cb = sizeof(si) ; // 必须是本结构的大小// 返回的用于子进程的进程信息PROCESS_INFORMA TION pi;// 利用同样的可执行文件和命令行创建进程,并赋于其子进程的性质BOOL bCreateOK = :: CreateProcess(szFilename, // 产生这个EXE的应用程序的名称szCmdLine, // 告诉其行为像一个子进程的标志NULL, // 缺省的进程安全性NULL, // 缺省的线程安全性FALSE, // 不继承句柄CREA TE_NEW_CONSOLE, // 使用新的控制台NULL, // 新的环境NULL, // 当前目录&si, // 启动信息&pi) ; // 返回的进程信息// 对子进程释放引用if (bCreateOK){:: CloseHandle(pi.hProcess) ;:: CloseHandle(pi.hThread) ;}}int main(int argc, char* argv[] ){// 确定进程在列表中的位置int nClone(0) ;if (argc > 1){// 从第二个参数中提取克隆ID:: sscanf(argv[1] , “%d” , &nClone) ;}// 显示进程位置std :: cout << “Process ID: “ << :: GetCurrentProcessId()<< “, Clone ID: “ << nClone<< std :: endl;// 检查是否有创建子进程的需要const int c_nCloneMax = 25;if (nClone < C_nCloneMax){// 发送新进程的命令行和克隆号StartClone(++nClone) ;}// 在终止之前暂停一下(l/2秒):: Sleep(500) ;return 0;}实验四 windows 2000中线程的创建和同步控制一、实验目的1、加深对线程概念的理解,明确进程和线程的区别2、掌握windows 2000中线程创建和同步控制的编程方法二、实验任务在windows2000的环境下,创建一个控制台进程,此进程创建两个并发线程,一个是读线程,另一个是写线程。

这两个线程共享一个数组A,写线程对数组分别进行10次写操作,每次写操作对A的每个元素赋一个相同的值;读线程对数组分别进行10次读操作,每次读操作输出A中所有元素的值。

写出相应代码,并分析运行结果。

修改代码,使每次读写互斥,即每次对数组的写操作结束后才能进行写操作,反之亦然。

三、实验指导线程是操作系统分时调度分配CPU时间的基本实体。

一个线程可以执行程序的任意部分的代码,即使这部分代码被另一个线程并发地执行;一个进程的所有线程共享它的虚拟地址空间、全局变量和操作系统资源。

之所以有线程这个概念,是因为以线程而不是进程为调度对象效率更高:由于创建新进程必须加载代码,而线程要执行的代码已经被映射到进程的地址空间,所以创建、执行线程的速度比进程更快。

一个进程的所有线程共享进程的地址空间和全局变量,所以简化了线程之间的通讯。

1、线程的创建使用CreateThread函数创建线程,CreateThread的原型如下:HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags, // creation flagsLPDWORD lpThreadId);其中:lpThreadAttributes 表示创建线程的安全属性,NT下有用。

相关文档
最新文档