操作系统原理实验2+岳青山+0907052247

合集下载

操作系统原理 实验报告

操作系统原理 实验报告

操作系统原理实验报告操作系统原理实验报告一、引言操作系统是计算机系统中的核心软件,它负责管理和协调计算机硬件资源,提供用户与计算机硬件之间的接口,使得用户可以方便地使用计算机。

在本次实验中,我们通过实际操作和观察,深入理解了操作系统的原理和工作机制。

二、实验目的本次实验的主要目的是通过模拟操作系统的运行过程,加深对操作系统原理的理解。

具体目标包括:1. 掌握操作系统的启动过程和内存管理机制;2. 理解进程调度算法的原理和实现;3. 学习文件系统的组织和管理方式;4. 了解操作系统与硬件之间的交互方式。

三、实验过程1. 启动过程在计算机启动时,操作系统首先加载到内存中,并开始执行。

我们通过模拟实验,深入了解了操作系统的启动过程。

我们观察到操作系统通过读取硬盘中的引导扇区来进行启动,并且在启动过程中会进行一系列的初始化操作,如初始化内存管理、进程管理和设备驱动等。

2. 内存管理内存管理是操作系统中的重要组成部分,它负责分配和回收内存资源,以及管理进程的内存空间。

在实验中,我们学习了内存分页和内存分段两种常见的内存管理方式,并通过实际操作和观察,对其原理和实现有了更深入的了解。

3. 进程调度进程调度是操作系统中的核心功能之一,它决定了哪些进程能够获得CPU的使用权。

在实验中,我们学习了常见的进程调度算法,如先来先服务、短作业优先和时间片轮转等。

通过模拟实验,我们观察到不同的调度算法对进程执行的影响,加深了对进程调度原理的理解。

4. 文件系统文件系统是操作系统中负责管理和组织文件的机制。

在实验中,我们学习了文件系统的组织方式,如目录结构和文件存储方式等。

通过实际操作和观察,我们了解了文件系统的工作原理和实现机制。

5. 硬件交互操作系统与硬件之间的交互是实现计算机功能的关键。

在实验中,我们学习了操作系统与硬件之间的通信方式,如中断和设备驱动等。

通过模拟实验,我们观察到操作系统是如何与硬件进行交互,并掌握了操作系统与硬件之间的配合工作。

操作系统原理实验报告

操作系统原理实验报告

《操作系统原理》实验报告班级:姓名:学号:指导老师:目录:实验题目:实验一线程创建与撤销 (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结构,该结构决定了返回的句柄是否可被子进程继承。

操作系统原理与实训教程

操作系统原理与实训教程

操作系统原理与实训教程
“哇,这电脑咋又卡了呢?”我嘟囔着。

旁边的小伙伴凑过来:“嘿,你知道不?电脑卡可能是操作系统出问题啦。


咱先说说啥是操作系统原理呗。

这操作系统就像一个大管家,管着电脑里的各种事儿。

它有好多关键部件呢,就像大脑有不同区域负责不同功能一样。

比如说有内核,这内核就像是心脏,给整个系统提供动力。

还有文件系统,那文件系统就像个大仓库,把咱的照片、文档啥的都好好放着。

那操作系统是咋工作的呢?它就像个指挥家,指挥着电脑里的各个程序。

当你打开一个软件的时候,操作系统就会给它分配资源,让它能顺利运行。

比如说内存呀、CPU 时间啥的。

这就好比老师给同学们分任务,让大家都能有事干。

那这操作系统在生活中有啥用呢?就说有一天,我和爸爸妈妈一起想找出去旅游的照片。

这时候操作系统的文件系统就派上用场啦。

我们很容易就找到了那些照片,回忆起了美好的时光。

要是没有操作系统,那找照片可就像大海捞针一样难喽!
操作系统真的太重要啦!它就像我们生活中的小助手,让我们的电脑生活变得更加方便。

没有它,电脑可就没法好好工作啦。

所以说,咱可得
好好爱护这个大管家。

操作系统原理实验报告

操作系统原理实验报告
《操作系统原理》 实验报告
2012 软件工程(嵌入式)
学号:____________ 姓名:____________
苏州大学计算机科学与技术学院 2015 年 3 月
目录
操作系统原理实验报告
一、实验环境............................................................................................ 1
5
操作系统原理实验报告 6
操作系统原理实验报告 7
操作系统原理实验报告 8
操作系统原理实验报告
实验二、进程间的通信
实验环境:
实验环境一:Windows 平台
实验时间:
6 小时
实验目的:
初步了解 windows 环境下进程间通信的机制,掌握如何利用消息、共享内存 和剪贴板三种进程间通信机制中的任意 2 种进行通信的原理,并利用 win32API 函数编写实例程序。
[提示] 1、从 root 注册进系统,可以通过用户图形界面中的菜单创建用户组并为用
户分配注册号,也可以通过 shell 命令创建用户组,创建用户组的 shell 命令格式
2
操作系统原理实验报告
如下:
groupadd -g group_ID group_name
为用户分配注册号的 shell 命令格式如下:
usermod options login_ID
其中,任选项 options 可以为如下内容:
-c comment
表示注释信息
-d pathname
表示当前目录
-g group_ID
表示主用户组名
-G supplementary_group_ID 表示主用户组的增补组名

操作系统原理实验报告(终版)

操作系统原理实验报告(终版)

操作系统原理实验报告(终版)————————————————————————————————作者:————————————————————————————————日期:[键入文字]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!”后终止。

操作原理报告

操作原理报告

《操作系统原理》 课内实验报告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、基本命令的使用四、评阅意见:批阅教师:批阅日期:。

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

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

《操作系统原理》实验指导书计算机科学与技术系2010年9月目录《操作系统原理》实验教学大纲(修订) (1)实验考核方式与基本要求 (3)实验一进程控制描述与控制 (12)实验二并发与调度 (24)实验三存储管理 (31)实验四设备管理 (40)实验五文件管理与系统安全 (44)附录实验报告参考规范 (64)《操作系统原理》实验教学大纲(修订)课程编号:0433314课程名称:操作系统原理实验学时:14一、本实验课的性质、任务与目的操作系统作为计算机专业的一门专业基础课,是计算机专业的核心课程之一,学好与否直接关系到学生是否能更好地学习后续课程。

通过本实验课程的学习,使学生理解与掌握操作系统设计所遵循的基本原理,基本方法,建立多道程序设计环境下的并行程序设计的思维方式。

此外,操作系统用到的各种算法也是学生加强算法锻炼的好机会,对日后从事系统开发方面的工作有直接的借鉴作用。

本实验课程在操作系统原理课程教学中占有重要地位,目的是让学生及时掌握和巩固所学的基本原理和基础理论,加深理解。

提高学生自适应能力,为将来使用和设计各类新的操作系统打下良好的基础。

二、本实验课所依据的课程基本理论计算机操作系统,操作系统中所介绍的重要算法。

三、实验类型与要求序号实验内容内容提要实验要求实验时数实验类型每组人数所在实验室名称备注一进程控制描述与控制操作系统界面、进程管理必修 2 验证 2 系机房二并发与调度进程并发、进程状态转换必修 2 验证 2 系机房三存储管理内存空间分配及虚拟存储器必修 2 验证 2 系机房四设备管理设备分配与回收必修 2 验证 2 系机房五文件管理与系统安全文件系统目录结构,文件操作及操作系统安全任选 2 验证 2 系机房六操作系统功能模拟设计实验操作系统功能模拟设计并实现必修 4 设计3-4 系机房四、每组人数与实验学时数序号实验内容实验时数每组人数一进程控制描述与控制 2 2二并发与调度 2 2三存储管理 2 2四设备管理 2 2五文件管理与系统安全 2 2六操作系统功能模拟设计实验 4 3-4五、考核方式与评分办法考核方式:在规定时间内,按要求设计相应的模拟系统并上机调试运行,写出详细的实验报告,在机上向教师演示自己设计的模拟系统。

操作系统原理课内实验指导书

操作系统原理课内实验指导书

操作系统原理课内实验指导书实验一:用户接口实验准备知识为了使用户通过操作系统完成各项管理任务,操作系统必须为用户提供各种接口来实现人机交互。

经典的操作系统理论将操作系统的接口分为控制台命令和系统调用两种。

前者主要提供给计算机的操作人员对计算机进行各种控制;而后者则提供个程序员,使他们可以方便地使用计算机的各种资源。

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个参数。

操作系统实验报告2doc

操作系统实验报告2doc

操作系统实验报告2doc操作系统实验报告2篇一:操作系统实验二实验报告操作系统实验报告——实验二:线程和管道通信实验一、实验目的通过Linux 系统中线程和管道通信机制的实验,加深对于线程控制和管道通信概念的理解,观察和体验并发进(线)程间的通信和协作的效果 ,练习利用无名管道进行进(线)程间通信的编程和调试技术。

二、实验说明1) 与线程创建、执行有关的系统调用说明线程是在共享内存中并发执行的多道执行路径,它们共享一个进程的资源,如进程程序段、文件描述符和信号等,但有各自的执行路径和堆栈。

线程的创建无需像进程那样重新申请系统资源,线程在上下文切换时也无需像进程那样更换内存映像。

多线程的并发执行即避免了多进程并发的上下文切换的开销又可以提高并发处理的效率。

pthread 库中最基本的调用。

1.pthread_create 系统调用语法:#includeInt pthread_create(pthread_t *thread,pthread_attr_t *attr,void *(*start_routine)(void *) Void *arg);pthread_create 函数创建一个新的线程。

pthread_create 在thread 中保存新线程的标识符。

Attr 决定了线程应用那种线程属性。

使用默认可给定参数 NULL; (*start_routine) 是一个指向新线程中要执行的函数的指针 arg 是新线程函数携带的参数。

Pthread_create 执行成功会返回0并在 thread 中保存线程标识符。

执行失败则返回一个非0的出错代码2.pthread_exit 系统调用语法:#includevoid pthread_exit(void *retval);pthread_exit 函数使用函数pthread_cleanup_push 调用任何用于该线程的清除处理函数,然后中止当前进程的执行,返回retval。

操作系统原理实验(参考课件)

操作系统原理实验(参考课件)
▪ Linux发布的版本不下几十种,不同版本Linux的基本操作 方法、用户界面、基本功能等大都相同
▪ Linux可以直接在裸机上安装,也可以在硬盘上与其他操作 系统,如 MS-DOS、Windows或OS/2共存
▪ 安装Linux所花费的时间依具体机器的运行速度和Linux版 本等条件而定
15
实验目的
▪ 以安装Red Hat Linux 9.0为例,学习和掌握 Linux操作系统的安装
▪ 掌握对Linux操作系统的的基本系统设置 ▪ 掌握与Linux相关的多操作系统安装的方法
13
§1.2 安装 Red Hat Linux 9.0
▪ 实验估计时间:120分钟,难度系数:4
• 背景知识 • 实验目的 • 工具/准备工作 • 实验内容与步骤 • 实验提示
14
背景知识
▪ Linux是一种可运行于多种硬件平台 (如PC及其兼容机、 Alpha工作站、SUN Spare工作站) 、源代码公开、免费提 供用户使用、功能强大、遵守POSIX (可移植操作系统接口) 标准、与UNIX兼容的操作系统。此外,Linux也支持多 CPU计算机
2
进程描述 与控制 ③
调度 ⑤
存储器管理 ⑥
并发性 ④
输入/输出 管理 ⑦
文件管理 ⑧
操作系统的各个主题
粗线表示从设计和实现 的角度考虑关系非常紧密
安全性 ⑩
联网 ⑨
3
实验1 安装操作系统
▪ 通过对Windows 2000 Professional和Red Hat Linux 9.0的安装操作,了解操作系统应用环境建立的初步 过程,掌握操作系统的基本系统设置,掌握多操作 系统的安装和设置。
11
实验内容与步骤

操作系统原理实验报告

操作系统原理实验报告

实验报告课程名称操作系统原理实验项目操作系统功能认识专业班级姓名学号指导教师实验成绩2012年3月29日实验1 操作系统功能认识一、进程管理1.背景知识本实验要求学生掌握常用的系统操作,例如运行程序、关闭程序、查看任务管理器等。

2.实验目的本实验帮助学生理解程序与进程的区别,了解系统进程与用户进程,了解主要操作系统进程。

3.工具/准备工作需要准备一台安装Windows XP操作系统的计算机。

4.实验内容与步骤1) 开机后,不要主动运行任何应用程序,按Ctrl+Alt+Del进入任务管理器,查看“进程”标签,记录任意四个已经处于运行状态的进程。

a) _______oracle.exe________________ b) _____MOM.exe ______________c) ______spoolsv.exe____________ d) __ conime.exe__________ ________2)请通过网络或辅助工具,了解下面系统进程的主要职责:a) system Idle Process:监控cpu的使用,当cpu空闲的时候,则自动发送一个idle 指令,让cpu暂时停止工作(称之为挂起)。

它其实反应的是cpu的空闲状态。

b) explorer:___用于管理Windows图形壳_。

__________________________________c) services:用于管理启动和停止服务。

该进程也会处理在计算机启动和关机时运行的服务。

d) spoolsv: 管理所有本地和网络打印队列及控制所有打印工作。

e) winlogon:Windows NT 用户登陆程序,管理用户登录和退出。

f) system:_后门木马病毒,用于窃密,远程控制。

________________3) 执行“记事本”程序,观察任务管理器,记载其对应进程名称?a)____notepad.exe_______________________________________________________________ 执行“Office Word”程序,观察任务管理器,记载其对应的进程名称?b) ___WINWORD.exe_____________________________________________________执行“任务管理器|查看|选择列”操作,从中选择以下列,通过观察以上两个程序的各分量情况,分析这些列的含义:PID:唯一标识所运行进程的编号。

操作系统原理实验报告

操作系统原理实验报告

操作系统原理实验报告一、课程设计的题目:根据“操作系统原理”课程的课堂教学内容,结合自己的知识积累情况,题目可从下述拟题中选择,亦可自定。

二、实验设计的内容:在Linux或Windows操作系统下,用C语言进行操作系统相关的设计开发,内容可关于“并发程序设计”、“处理机管理”、“作业管理”、“存储管理”、“文件系统管理”、“设备管理”等等。

三、参考资料:1、清华大学出版,张尧学《计算机操作系统教程》配套的《习题解答与实验指导书》中范例;2、清华大学出版,任爱华《操作系统实用教程》中的实例设计;3、《Linux下C语言编程入门教程》、《Linux软件工程师(C语言)实用教程》等;4、网上与操作系统设计与开发相关的文献资料。

四、重要操作环节1、步骤:选题(4、5人一小组)--→提交小组名单--→分析、编写程序--→上机调试--→分析结果--→评价结果--→写出设计报告2、设计报告的主要内容:①、设计说明:设计主要完成的任务、解决的主要问题;②、工作原理:找出教材中的相关工作原理并简要说明;③、详细设计:包括调用的主要系统函数说明、程序流程图、程序代码、关键语句注释;④、运行结果:要求写出运行结果或抓图给出;⑤、分析结果:要求用操作系统原理有关理论解释说明;⑥、调试步骤以及调试过程中出现的问题及解决方法;⑦、参考文献:5篇以上;⑧、以学年论文格式提交文档资料,要有统一的封面和实验心得体会。

五、成绩评定1、必做实验10分,选做实验20分;2、各组同学代表打分占50%,实验报告的规范化程度50%;3、打分遵循原则如上学期信息检索课程(叙述简明扼要、思路清晰、时间掌握得好、回答问题准确、PPT美观等),实验报告规范化程度如学年论文。

必做实验每小组都要做选做实验,每一题最多只能有两个小组选必做实验(四个,每小组每一实验都要做)(满分10分)实验一1. 实验名称:Linux登录、注销、关机和基本操作一。

2. 实验要求:掌握Linux系统的登录、注销、关机方法;掌握列出文件清单命令的使用方法:ls;掌握目录的切换命令的使用:cd;掌握目录的建立、删除命令的使用:mkdir、rmdir;掌握文件的拷贝、删除、移动命令的使用:cp、rm、mv 。

《操作系统原理》报告

《操作系统原理》报告

《操作系统原理》报告《操作系统原理》实验指导书班级:__信管***_____学号:__***__姓名:___***________信息管理与信息系统教研室目录实验题目二:模拟进程调度功能 (4)一、题目类型: (4)二、实验目的: (4)三、实验环境: (4)四、实验内容: (4)五、实验要求: (4)六、各功能简要说明: (5)七、程序清单: (5)八、程序中使用的数据结构及符号说明: (11)九、调试程序时出现问题说明及解决的方法: (11)实验题目五:模拟使用银行家算法判断系统的状态 (11)一、题目类型: (11)二、实验目的: (11)三、实验环境: (11)四、实验内容: (12)五、实验要求: (12)六、各功能简要说明: (13)七、程序清单: (13)(21)八、程序中使用的数据结构及符号说明: (21)九、程序调试时出现问题及解决的方法: (22)引言操作系统是信息管理与信息系统专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。

操作系统实验是操作系统课程的一个重要组成部分,通过试验环节的锻炼使同学们不仅能够对以前的所学过的基础知识加以巩固,同时能够通过上机实验,对操作系统的抽象理论知识加以理解,最终达到融会贯通的目的,因此,实验环节是同学们理解、掌握操作系统基本理论的一个重要环节。

本实验指导书,根据教材中的重点内容设定了相应的实验题目,由于实验课程的学时有限,我们规定了必做题目和选做题目,其中必做题目必须在规定的上机学时中完成,必须有相应的预习报告和实验报告。

选做题目是针对有能力或感兴趣的同学利用课余时间或上机学时的剩余时间完成。

实验题目二:模拟进程调度功能一、题目类型:必做题目。

二、实验目的:通过本实验,进一步掌握进程调度的功能和实现原理。

三、实验环境:1、硬件:PC机及其兼容机。

2、软件:Windows OS,Turbo C或C++、VC++、、Java等。

《操作系统原理》实验报告模板

《操作系统原理》实验报告模板

《操作系统原理》实验报告姓名: 杨迟宁学号: U201217418 班级: 软工2班时间:一、实验内容【本节分1,2,3条写出实验内容或要求,篇幅200-400字】设计一个虚拟存储区和内存工作区,并使用下列算法计算访问命中率。

(1)进先出的算法(FIFO)(2)最近最少使用的算法(LRU)(3)最佳淘汰算法(OPT)命中率=(1-页面失效次数)/页地址流长度二、实验原理【本节简要介绍每个实验内容的理论背景,篇幅400-600字】三、实验用到的主要函数或库【本节简要介绍每个实验涉及到的重要函数或库,篇幅200-400字】第一题:1.key_t ftok(char *pathname,char proj)返回文件名对应的键值(把消息队列当作文件处理)头文件:#include <sys/types.h> #include <sys/ipc.h>pathname:文件名proj:项目名(不为0即可)2.int msgget(key_t key,int msgflg)打开或创建消息队列头文件:#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> key:键值,由ftok获得msgflg:标志位(IPC_CREAT,如果不存在,创建新的消息队列IPC_EXCL,与IPC_CREAT一起使用,表示如果消息队列已存在,则返回错误IPC_NOWAIT,读写消息队列要求无法得到满足时,不阻塞)返回值:与键值key相对应的消息队列描述字,出错时返回-1**在以下两种情况下,将创建一个新的消息队列:a)如果没有与键值key相对应的消息队列,并且msgflg参数中包含了IPC_CREAT 标志位b)key参数为IPC_PRIVATE3.int msgsnd(int msqid,struct msgbuf *msgp,int msgsz,int msgflg)向消息队列中发送一条消息头文件:#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h>msqid:消息队列id(消息队列的描述字)msgp:存放消息的结构(格式为:struct msgbuf{int mtype;/*消息类型> 0*/char mtex[1];/*消息数据,字符数组*/};)msgsz:消息数据长度msgflg:发送标志,有意义的msgflg标志为IPC_NOWAIT,指明消息队列中没有足够空间容纳要发送的消息时,msgsnd是否等待,0表示等待返回值:发生错误时返回-14.int msgrcv(int msqid,struct msgbuf *msgp,int msgsz,long msgtyp,int msgflg)从消息队列msqid中读取一个msgtyp类型的消息,并把消息存储在msgp指向的msgbuf结构体中。

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

《操作系统原理》实验报告实验序号:2 实验项目名称: Windows 基本进程管理1、实验目的通过观察任务管理器,来观察各个进程的动态信息。

2、实验工具(1)一台WindowsXP操作系统的计算机。

(2)计算机装有Microsoft Visual Studio C++6.0专业版或企业版。

3、预备知识·任务管理器,了解用户计算机上正在运行的程序和进程的相关信息。

·Windows环境中的编程。

相关内容参见本次实验参考资料部分。

4、基本实验1)观察任务管理器步骤一:进入WindowsXP。

步骤二:按Ctrl+Alt+Delete(或按Ctrl+Shift+Esc)键都可以调出任务管理器。

步骤三:单击“查看”→“选择列”选项,可以看到一些选项,这里,可以查看每个进程的PID,CPU使用时间,内存的使用情况,当前的进程是系统的还是用户的,每个句柄的数量,每个进程的优先级,等等。

步骤四:单击“性能”标签,在所示的“性能”选项卡中可以看到CPU的使用情况、内存的使用情况。

2)通过命令观察进程情况、步骤一:单击“开始”→“运行”选项,输入cmd“命令提示符”下。

步骤二:输入tasklist。

步骤三:继续输入tasklist/?来寻找帮助,里面有更详细的解释。

3)通过命令来关闭一个进程步骤一:单击“开始”→“运行”选项,输入cmd“命令提示符”下。

步骤二:输入tasklist后回车执行。

步骤三:继续输入taskkill/PID 208/T5、实验编程进行一个简单的Windows的图形用户接口(GUI)编程。

步骤一:进入WindowsXP。

步骤二:进入Microsoft Visual Studio C++6.0。

步骤三:在菜单栏中单击“文件”→“新建”→“文件”→C++Source File,选择路径(如D:\1.cpp),并命名为1.cpp。

步骤四:将下面的程序源代码输入。

步骤五:单击Windows系统的“开始”→“运行”选项,输入cmd。

步骤六:依次输入命令为cd \d:// 这里是存放的源程序地方,如果是放在其他地方,则利用cd命令进入源程序的地方CL 1.cpp// 对这是源程序进行编程步骤七:若没有错误,则会自动生成1.exe和1.obj文件,双击“1.exe”,即可看到结果。

源代码如下:# include < windows.h># include < stdio.h>//告诉连接器与包括MessageBox API函数的user32库进行连接# pragma comment(lib,”user32.lib”)int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){∷MessageBox(NULL, //没有父窗口“hello windows XP”, // 消息框中的文本显示hello windows XP“提示”,//消息框的标题MB OK); // 其中只有一个OK按钮//返回0以便通知系统不进入消息循环return 0;}6、扩展实验1、获得和使用进程的句柄步骤一:进入WindowsXP。

步骤二:Microsoft Visual Studio C++6.0。

步骤三:在菜单栏中单击“文件”→“新建”→“文件”→C++Source File,选择路径(如:D:\2.cpp。

步骤四:将下面的程序源代码输入。

步骤五:单击Windows 系统的“开始”→“运行”选项,输入cmd。

步骤六:依次输入命令为:cd\d://这里是存放的源程序地方,如果是放在其他地方,则利用cd命令进入源程序的地方CL 2.cpp//对这是源程序进行编译步骤七:若没有错误,则会自动生成2.exe和2.obj文件,双击2.exe,程序源代码如下:#include < windows.h >#include < iostream.h >#include < stdio.h >//确定自己的优先权的简单应用程序void main()﹛//从当前过程中提取句柄HANDLE hProcessThis=::GetCurrentProcess();//请求内核提供该过程所属的优先权类DWORD dwPriority=::GetPriorityClass(hProcessThis);//发出消息,为用户描述该类std::cout〈〈“current process priority:”;switch(dwPriority)﹛case HIGH PRIORITY CLASS:std::cont<<”High”;break;case NORMAL PRIORITY CLASS:std::coutg<<”Normal”,break;case IDLE PRIORITY CLASS;std::cout<<”Idle”;break;case REALTIME PRIORITY CLASS:std::cout<<”Realtime”;break;default:std::cout<<”<unknown>”;break;﹜Std::cout<<std::endl;Getchar();﹜2)利用句柄来获得进程的详细信息步骤一:进入进入WindowsXP。

步骤二:Microsoft Visual Studio C++6.0。

步骤三:在菜单栏中单击“文件”→“新建”→“文件”→C++Source File,选择路径(如D:\3.cpp),并命名为3.cpp。

步骤四:将下面的程序源代码输入。

步骤五:单击Windows系统的“开始”→“运行”选项,输入cmd。

步骤六:依次输入命令为:cd\d://这里是存放的源程序地方,如果是放在其他地方,则利用cd命令进入源程序的地方CL 3.cpp//对这是源程序进行编译步骤七:若没有错误,则会自动生成3.exe和3.obj文件,双击”3.exe”,程序源代码如下:#include < windows.h >#include < tlhelp32.h >#include < iostream.h >#include < stdio.h >//当在用户模式机内模式下都提供所耗时间时,在内核模式下进行所耗时间的64位计算的帮助方法DWORD GetKernelModePercentage(const FILETIME& ftKernel,const FILETIME& ftUser) {//将FILETIME结构转化为64位整数ULONGLONG qwKernel = (((ULONGLONG)ftKernel.dwHighDateTime)<<32) + ftKernel.dwLowDateTime;ULONGLONG qwUser = (((ULONGLONG)ftUser.dwHighDateTime)<<32) + ftUser.dwLowDateTime;//将消耗时间相加,然后计算消耗在内模式下的时间百分比ULONGLONG qwTotal = qwKernel + qwUser;DWORD dwPct = (DWORD)(((ULONGLONG)100 * qwKernel)/qwTotal);return(dwPct);}//以下是将当前运行过程名和消耗在内模式下的时间百分数都显示出来的应用程序void main(){//对当前系统中运行的过程拍取“快照”HANDLE hSnapshot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, //提取当前过程0); //如果是当前过程,就将其忽略//初始化过程入口PROCESSENTRY32 pe;::ZeroMemory(&pe,sizeof(pe));pe.dwSize = sizeof(pe) ;BOOL bMore = ::Process32First(hSnapshot,&pe);while(bMore){//打开用于读取的过程HANDLE hProcess = ::OpenProcess(PROCESS_QUERY_INFORMA TION, //指明要得到信息FALSE, //不必继承这一句柄pe.th32ProcessID); //要打开的过程if(hProcess != NULL){//找出进程的时间FILETIME ftCreation, ftKernelMode,ftUserMode,ftExit;::GetProcessTimes(hProcess, //所感兴趣的进程&ftCreation, //进程的启动时间&ftExit, //结束时间(如果有的话)&ftKernelMode, //在内核模式下消耗的时间&ftUserMode); //在用户模式下消耗的时间//计算内核模式消耗的时间百分比DWORD dwPctKernel = ::GetKernelModePercentage(ftKernelMode, //在内核模式上消耗的时间ftUserMode); //在用户模式下消耗的时间//向用户显示进程的某些信息cout << "process ID:" << pe.th32ProcessID<< ",EXE file:" << pe.szExeFile<< ", % in Kernel mode:" << dwPctKernel << endl;//消除句柄::CloseHandle(hProcess);}//转向下一个进程bMore = ::Process32Next(hSnapshot,&pe);}getchar();}7、实验结果与数据处理12356.16.2。

相关文档
最新文档