操作系统原理实验01
- 格式:pptx
- 大小:545.53 KB
- 文档页数:26
目录实验一系统功能调用 (1)实验二熟悉Linux环境 (6)实验三 shell脚本 (14)实验四进程控制 (18)实验五进程间通信 (22)(一) 信号量机制实验 (22)实验五进程间通信 (28)(二) 进程的管道通信实验 (28)实验五进程间通信 (32)(三) 消息的发送与接收实验 (32)实验五进程间通信 (37)(四) 共享存储区通信 (37)实验六死锁避免的算法 (43)实验七存储管理 (45)1. 常用页面置换算法 (45)2.动态分区分配算法 (54)实验八文件操作 (55)实验一系统功能调用【实验目的】1.熟悉操作系统的系统功能调用。
2.掌握用C语言实现系统功能调用的方法和步骤。
3.掌握利用10H号功能调用(BIOS的显示I/O功能调用)来实现对屏幕的操作与控制。
【预习内容】1.预习DOS、BIOS系统功能调用。
2.预习C语言实现系统功能调用的方法。
【实验内容】1.在屏幕的指定区域内显示字符串。
(必做题)2.在屏幕的指定区域内画框,在框内显示字符串。
(提高题)3. 在屏幕的指定区域内动画显示字符串。
(附加题)【实验报告】1.列出调试通过程序的清单,并加注释。
2.给出必要的程序设计思路和方法(或列出流程图)。
3.总结上机调试过程中所遇到的问题和解决方法及感想。
【实验相关资料】int86(0X10, &r, &r)函数:对BIOS调用的标准函数其中0X10是BIOS调用类型号(相当于INT n调用的中断类型号n),是10H号中断调用,是一个显示I/O调用。
BIOS借助此中断产生的功能调用控制PC机屏幕上的文本和图形。
通过给AH 寄存器设置适当的值选择想要的功能调用,然后发中断10H。
第一个&r是指向联合类型REGS的指针,用于接收调用的功能号及其它一些指定的入口参数,以便传给相应寄存器。
第二个&r是指向联合类型REGS的指针,用于接收功能调用后的返回值,即出口参数。
《操作系统原理》实验报告班级:姓名:学号:指导老师:目录:实验题目:实验一线程创建与撤销 (2)实验题目:实验二线程同步 (6)实验题目:实验三线程互斥 (11)实验题目:实验四进程通信 (17)实验题目:实验五读者-写者问题 (21)实验题目:实验六进程调度 (37)实验题目:实验七存储管理之动态链接库 (52)实验题目:实验八存储管理之内存分配 (56)实验题目:实验九存储管理之页面置换算法 (69)实验题目:实验十设备管理 (84)实验题目:实验十一文件管理之文件读写 (98)实验题目:实验一线程创建与撤销完成人:XXX报告日期:2018年3月31日一、实验内容简要描述(1)熟悉VC++、Visual Studio开发环境。
(2)使用相关函数创建和撤销线程。
(3)在一个进程中创建3个线程,名字分别为threada、threadb、threadc。
threada输出“hello world! ”。
threadb输出“My name is …”。
threadc输出“Please wait…”,然后sleep 5秒钟,接着输出“I wake up”。
二、程序设计1、设计思路该函数创建一个在调用进程的地址空间中执行的线程。
2、主要数据结构HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId);VOID ExitThread(DWORD dwExitCode);VOID Sleep(DWORD dwMilliseconds);VOID Sleep(DWORD dwMilliseconds);三、实验结果1、基本数据lpThreadAttributes:指向一个SECURITY_ATTRIBUTES结构,该结构决定了返回的句柄是否可被子进程继承。
操作系统原理实验一、实验目的本实验旨在通过实际操作,加深对操作系统原理的理解,掌握操作系统的基本功能和调度算法。
二、实验环境1. 操作系统:Windows 102. 虚拟机软件:VirtualBox3. 实验工具:C语言编译器(如gcc)、汇编语言编译器(如nasm)、调试器(如gdb)三、实验内容1. 实验一:进程管理在这个实验中,我们将学习如何创建和管理进程。
具体步骤如下:a) 创建一个C语言程序,实现一个简单的计算器功能。
该计算器能够进行基本的加减乘除运算。
b) 使用fork()系统调用创建一个子进程,并在子进程中执行计算器程序。
c) 使用wait()系统调用等待子进程的结束,并获取子进程的退出状态。
2. 实验二:内存管理在这个实验中,我们将学习如何进行内存管理。
具体步骤如下:a) 创建一个C语言程序,模拟内存分配和释放的过程。
该程序能够动态地分配和释放内存块。
b) 使用malloc()函数分配一块内存,并将其用于存储数据。
c) 使用free()函数释放已分配的内存块。
3. 实验三:文件系统在这个实验中,我们将学习如何进行文件系统的管理。
具体步骤如下:a) 创建一个C语言程序,实现一个简单的文件系统。
该文件系统能够进行文件的创建、读取、写入和删除操作。
b) 使用open()系统调用打开一个文件,并进行读取和写入操作。
c) 使用unlink()系统调用删除一个文件。
四、实验步骤1. 安装虚拟机软件VirtualBox,并创建一个虚拟机。
2. 在虚拟机中安装操作系统Windows 10。
3. 在Windows 10中安装C语言编译器、汇编语言编译器和调试器。
4. 根据实验内容,编写相应的C语言程序并保存。
5. 在命令行中使用gcc编译C语言程序,并生成可执行文件。
6. 运行可执行文件,观察程序的执行结果。
7. 根据实验要求,进行相应的操作和测试。
8. 完成实验后,整理实验报告,包括实验目的、实验环境、实验内容、实验步骤和实验结果等。
计算机操作系统原理实验报告专业: 110420x学号: 1104202xx姓名: xxx哈尔滨工业大学(威海)实验一进程同步和互斥一、实验目的1.掌握临界资源、临界区概念及并发进程互斥、同步访问原理。
2.学会使用高级语言进行多线程编程的方法。
3.掌握利用VC++或Java语言线程库实现线程的互斥、条件竞争,并编码实现P、V操作,利用P、V操作实现两个并发线程对有界临界区的同步访问。
4.通过该实验,学生可在源代码级完成进程同步互斥方案的分析、功能设计、编程实现,控制进程间的同步、互斥关系。
二、实验要求1.知识基础:学生应在完成进程和线程及调度等章节的学习后进行。
2.开发环境与工具:硬件平台——个人计算机。
软件平台-Windows操作系统,VC++语言或Java语言开发环境。
3.运用高级语言VC++或Java语言线程库及多线程编程技术进行设计实现。
三、实验内容1.实现临界资源、临界区、进程或线程的定义与创建。
2.利用两个并发运行的进程,实现互斥算法和有界缓冲区同步算法。
四、程序流程图1.2.生产者消费者问题生产者:消费者:五、实验结果1.互斥问题2.生产者消费者问题六、结果分析有上述程序运行结果可知,此次试验已经基本达到了实验要求,在互斥问题中,由于采用了“模拟一个竞争条件——全局变量”来建立互斥,所以不会明显的条件来判断2个线程是否正确、独立的运行,所以,在运行时间上加以限制,让2个线程在有序运行时只能持续15秒。
在生产者消费者问题中,生产者与消费者的最大上限为10,并且生产者只能生产“同一种物品”,而消费者也只能购买“同一种物品”。
操作系统原理实验报告(终版)————————————————————————————————作者:————————————————————————————————日期:[键入文字]XX学校实验报告课程名称:学院:专业班:姓名:学号:指导教师:2011 年3 月目录实验1 进程管理 (3)一、实验目的 (3)二、实验内容 (3)三、实验要求 (3)四、程序说明和程序流程图 (4)五、程序代码 (5)六、程序运行结果及分析 (7)七.指导教师评议 (8)实验2 进程通信 (9)一、实验目的 (9)二、实验内容 (9)三、实验要求 (9)四、程序说明和程序流程图 (9)五、程序代码 (11)七.指导教师评议 (14)实验3 存储管理 (15)一、实验目的 (15)二、实验内容 (15)三、实验要求 (15)四、程序说明和程序流程图 (16)六、程序运行结果及分析 (23)七.指导教师评议 (23)实验4 文件系统 (24)一、实验目的 (24)二、实验内容 (24)三、实验要求 (24)四、程序说明和程序流程图 (24)五、程序代码 (26)六、程序运行结果及分析 (26)七.指导教师评议 (27)实验1 进程管理一、实验目的1. 弄清进程和程序的区别,加深对进程概念的理解。
2. 了解并发进程的执行过程,进一步认识并发执行的实质。
3. 掌握解决进程互斥使用资源的方法。
二、实验内容1. 管道通信使用系统调用pipe( )建立一个管道,然后使用系统调用fork( )创建2个子进程p1和p2。
这2个子进程分别向管道中写入字符串:“Child process p1 is sending message!”和“Child process p2 is sending message!”,而父进程则从管道中读出来自两个子进程的信息,并显示在屏幕上。
2. 软中断通信使用系统调用fork( )创建2个子进程p1和p2,在父进程中使用系统调用signal( )捕捉来自键盘上的软中断信号SIGINT(即按Ctrl-C),当捕捉到软中断信号SIGINT后,父进程使用系统调用kill( )分别向2个子进程发出软中断信号SIGUSR1和SIGUSR2,子进程捕捉到信号后分别输出信息“Child process p1 is killed by parent!”和“Child process p2 is killed by parent!”后终止。
《操作系统原理》实验教学大纲一、实验教学内容与基本要求实验一 批处理系统的作业调度1 目的要求1.加深对作业概念的理解;2.深入了解批处理系统如何组织作业、管理作业和调度作业。
2 实验内容编写程序完成批处理系统中的作业调度,要求采用响应比高者优先的作业调度算法。
实验具体包括:首先确定作业控制块的内容,作业控制块的组成方式;然后完成作业调度;最后编写主函数对所做工作进行测试。
3 所需实验设施设备PC、windows操作系统4 教学形式及过程演示、学生独立完成实验二 进程管理1 目的要求1.加深对进程概念的理解,明确进程和程序的区别。
2.深入了解系统如何组织进程、创建进程。
3.进一步认识如何实现处理器调度。
2 实验内容编写程序完成单处理机系统中的进程调度,要求采用时间片轮转调度算法。
实验具体包括:首先确定进程控制块的内容,进程控制块的组成方式;然后完成进程创建原语和进程调度原语;最后编写主函数对所做工作进行测试。
3 所需实验设施设备PC、windows操作系统4 教学形式及过程演示、学生独立完成实验三 动态分区存储管理方式的主存分配回收1 目的要求深入了解动态分区存储管理方式主存分配回收的实现。
2 实验内容编写程序完成动态分区存储管理方式的主存分配回收的实现。
实验具体包括:首先确定主存空间分配表;然后采用最优适应算法完成主存空间的分配和回收;最后编写主函数对所做工作进行测试。
3 所需实验设施设备PC、windows操作系统4 教学形式及过程演示、学生独立完成实验四 页式虚拟存储管理中地址转换和缺页中断1 目的要求1.深入了解页式存储管理如何实现地址转换;2.进一步认识页式虚拟存储管理中如何处理缺页中断。
2 实验内容编写程序完成页式存储管理中地址转换过程和模拟缺页中断的处理。
实验具体包括:首先对给定的地址进行地址转换工作,若发生缺页则先进行缺页中断处理,然后再进行地址转换;最后编写主函数对所做工作进行测试。
《操作系统原理》 课内实验报告2017年12月学院: 专业: 班级: 学号: 姓名: 指导教师:温 静学院:机械与电子信息学院专业:计算机网络技术班级:学号:姓名:指导教师:一、实验目的:1.掌握命令行窗口的显示设置;2.学会系统的基本配置;3.显示系统基本信息;4.掌握系统配置管理。
二、实验内容:1.进入windows命令行窗口;2.使用chcp命令设置活动代码页;3.使用命令prompt $v$g显示更改windows命令提示符;4.使用命令color fc改变windows命令行窗口的前景及背景色;5.使用命令title “windows 命令行窗口”改变windows命令行窗口的标题;6.使用命令date显示或设置系统日期;7.使用命令time显示或设置系统时间;8.使用命令w32tm/tz显示当前时区设置;9.使用命令doskey ls=dir /w创建宏;10.使用命令systeminfo |more显示系统信息;11.使用命令tasklist显示任务进程;12.使用命令taskkill 结束任务进程;13.基本命令的使用;14.宏命令的使用。
三、实验结果及分析:1、进入windows命令行窗口执行“开始”→“运行”→cmd。
2、设置活动代码页步骤一:输入命令chcp 936。
步骤二:输入命令ver.步骤三:输入命令chcp 437.步骤四:输入命令ver。
步骤五:比较结果。
3、显示更改windows命令提示符输入命令prompt $v$g。
4、改变windows命令行窗口的前景和背景色输入命令color fc。
5、改变命令行窗口的标题输入命令title “windows 命令行窗口”。
6、显示或设置系统日期输入date。
7、显示或设置系统时间输入命令time。
8、显示当前时区设置输入命令w32tm/tz。
9、创建宏输入命令doskey ls=dir /w.10、系统信息输入命令systeminfo |more.11、命令tasklist:显示任务进程输入命令tasklist.12、命令taskkill:结束任务进程输入命令taskkill 进程号显示窗口消失13、基本命令的使用四、评阅意见:批阅教师:批阅日期:。
实验一:Winows文件操作命令1、实验目的(1)加深对文件,目录和文件系统等概念的理解。
(2)掌握Windows文件系统的目录结构。
(3)掌握有关Windows文件系统操作的常用命令。
2、实验工具一台装有WindowsXP或Windows2003的机器(这里默认是WindowsXP)。
3、预备知识1)对文件操作的命令·dir:查看文件。
·attrib:显示或更改文件属性。
·ren(rename):重命名文件名。
·comp:比较两个或两套文件的内容。
·copy:文件复制。
·del(erase):文件删除。
·move:将文件从一个目录移到另一个目录。
2)对目录操作的命令·md(MKDIR):建立一个目录。
·cd(CHDIR):改变当前的目录。
·rd(rmdir):删除目录。
·tree:显示驱动器或路径的目录结构。
详细内容参见本次实验参考资料部分。
4、基本实验以下命令均在命令窗口中进行,进入Windows命令行窗口执行“开始”→“运行”→cmd1)显示目录文件和子目录命令dir输入命令dir。
2)显示或更改文件属性attrib步骤一:输入命令attrib。
步骤二:输入命令attrib+r+s pushd。
步骤三:输入命令attrib。
3)显示文件内容type步骤一:利用编辑工具(如edit)编辑文本,并以textl.txt为文件名保存。
步骤二:输入命令type textl.txt。
4)修改文件的名字ren步骤一:输入命令dir。
步骤二:输入命令ren tgextl.txt c.txt。
步骤三:输入命令dir。
5)比较两个或两套文件的内容comp步骤一:输入命令type a.txt。
步骤二:输入命令type b.txt。
步骤三:输入命令comp a.txt b.txt。
6)文件复制copy步骤一:利用编辑工具编辑(如edit)两个文本,分别命名为a.txt 和b.txt并保存。
操作系统原理课内实验指导书实验一:用户接口实验准备知识为了使用户通过操作系统完成各项管理任务,操作系统必须为用户提供各种接口来实现人机交互。
经典的操作系统理论将操作系统的接口分为控制台命令和系统调用两种。
前者主要提供给计算机的操作人员对计算机进行各种控制;而后者则提供个程序员,使他们可以方便地使用计算机的各种资源。
1.控制台命令接口操作系统向用户提供一组控制台命令,用户可以通过终端输入命令的方式获得操作系统的服务,并由此来控制自己作业的运行。
一般来讲,控制台命令应该包含:一组命令、终端处理程序以及命令解释程序。
1)bash的由来当登录Linux或者打开一个xterm时,当前默认的shell就是bash。
Bash是GNU Project 的shell。
GNU Project是自由软件基金会(Free Software Foundation)的一部分。
它对Linux 下的许多编程工具负责。
Bash(Bourne Again Shell)是自由软件基金会发布的Bourne shell 的兼容程序。
它包含了其他有些shell的许多良好的特性,功能非常的全面。
很多Linux版本都供bash。
2)bash的大致原理bash处理自己的脚本时,先找到需要处理的命令名称,进而在当前用户的默认命令目录中找到对应的命令,这些默认目录一般是/usr/bin、/bin或/sbin。
在执行这些命令时,先使用进程创建系统调用fork(),在使用exex()来执行这些命令。
3)建立bash脚本➢编辑文件可以用最熟悉的编辑器来编辑这个文本文件,比如文件名为script,在shell下输入:$ vi script#! /bin/bashEcho Hello World!然后保存,退出。
➢测试脚本。
使用指令:$ source script➢更改脚本属性使用指令:$ chmod a+x script将脚本程序设置为可执行。
➢执行脚本使用指令:$ ./script4)关键字参考Echo 在终端上显示Bash 特殊变量1~9,保存当前进程或脚本的前9个参数。