哈工大操作系统实验二
哈尔滨工业大学远程教育课程操作系统
实验二
主讲人:张英涛
实验2进程控制与描述
n通过在Windows任务管理器中对程序进程进行响应的管理操作,熟悉操作系统进程管理的概念,观察操作系统运行的动态性能,获得包含多进程的应用程序编程经验
•实验2.1 Windows 任务管理器的进程管理
•实验2.2 Windows 2000 编程
§2.1 Windows 任务管理器的进程管理n实验时间:2学时,难度系数:3
背景知识
n Windows 2000的任务管理器提供了用户计算机上正在运行的程序和进程的相关信息,也显示了最常用的度量进程性能的单位
n使用任务管理器
•可以打开监视计算机性能的关键指示器,快速查看正在
运行的程序的状态,或者终止已停止响应的程序
•也可以使用多个参数评估正在运行的进程的活动,以及
查看CPU 和内存使用情况的图形和数据
背景知识
n任务管理器中
•“应用程序”选项卡:显示正在运行程序的状态,用
户能够结束、切换或者启动程序
•“进程”选项卡:显示正在运行的进程信息。
例如,可以显示关于CPU 和内存使用情况、页面错误、
句柄计数以及许多其他参数的信息
•“性能”选项卡:显示计算机动态性能,包括CPU
和内存使用情况的图表,正在运行的句柄、线程和
进程的总数,物理、核心和认可的内存总数(KB)
等
实验目的
n通过在Windows 任务管理器中对程序进程进行响应的管理操作
n熟悉操作系统进程管理的概念
n学习观察操作系统运行的动态性能
实验内容与步骤
n使用任务管理器终止进程
n显示其他进程记数器
n更改正在运行的程序的优先级
实验提示
n注意实验中所使用的是操作系统的哪个版本n了解在当前机器中正在运行的应用程序
n终止进程时要小心,有可能导致不希望发生的结果,包括数据丢失和系统不稳定等;终止进程将结束它直接或间接创建的所有子进程
§2.2 Windows 2000 编程n实验时间:2学时,难度系数:4
背景知识
n Windows 2000可以识别的应用程序包括控制台应用程序、GUI应用程序和服务应用程序
n控制台应用程序可以创建GUI;GUI应用程序可以作为服务来运行;服务也可以向标准的输出流写入数据——不同类型应用程序间的惟一重要区别是其启动方法
背景知识
n Windows 2000是以NT的技术构建的,它提供了创建控制台应用程序的能力,使用户可以利用标准的C++工具,如iostream库中的cout和cin对象,来创建小型应用程序。
当系统运行时,Windows 2000的服务通常要向系统用户提供所需功能
n服务应用程序类型需要ServiceMail() 函数,由服务控制管理器(SCM) 加以调用。
SCM是操作系统的集成部分,负责响应系统启动以开始服务、指导用户控制或从另一个服务中来的请求。
其本身负责使应用程序的行为像一个服务。
通常,服务登录到特殊的LocalSystem账号下,此账号具有与开发人员创建的服务不同的权限
背景知识
n当令C++ 编译器创建可执行程序时,编译器将源代码编译成OBJ文件,然后将其与标准库相链接。
产生的EXE文件是装载器指令、机器指令和应用程序的数据的集合。
装载器指令告诉系统从哪里装载机器代码。
另一个装载器指令告诉系统从哪里开始执行进程的主线程。
在进行某些设置后,进入开发者提供的main() 、ServiceMain() 或WinMain() 函数的低级入口点。
机器代码中包括有控制逻辑,它所做的事包括跳转到Windows API函数,进行计算或向磁盘写入数据等
n Windows允许开发人员将大型应用程序分为较小的、互相有关系的服务模块,即动态链接库(DLL) 代码块,在其中包含应用程序所使用的机器代码和应用程序的数据
实验目的
n通过对Windows 2000编程
•进一步熟悉操作系统的基本概念
•较好地理解Windows 2000的结构
实验内容与步骤
n简单的控制台应用程序
n GUI应用程序
n进程对象
实验提示
n程序文件夹中包含了实验中用到的所有程序的源代码,这些源程序均通过调试运行,实验时可直接将文件输入。
操作系统lab2实验报告
操作系统lab2实验报告实验目的:本实验的目的是通过设计和实现一个简单的操作系统内核,加深对操作系统基本概念和原理的理解。
具体实验内容包括进程管理、内存管理和文件系统的设计与实现。
实验环境:1.操作系统:Linux2.编程语言:C语言一、实验背景1.1 操作系统简介操作系统是计算机系统中的一个重要组成部分,负责管理和控制计算机的各种资源,提供用户和应用程序的接口,以及协调和调度各种任务的执行。
1.2 实验目标本实验的主要目标是设计和实现一个简单的操作系统内核,包括进程管理、内存管理和文件系统等功能。
二、实验内容2.1 进程管理①进程创建描述进程创建的过程和相关数据结构,包括创建新进程的系统调用、进程控制块等。
②进程调度描述进程调度的算法和实现方式,包括进程调度队列、调度算法等。
③进程同步与通信描述进程同步和通信的机制和方法,包括信号量、互斥锁、条件变量等。
2.2 内存管理①内存分配描述内存分配的算法和实现方式,包括连续内存分配、非连续内存分配等。
②页面置换描述页面置换的算法和实现方式,包括最优页面置换算法、先进先出页面置换算法等。
2.3 文件系统①文件操作描述文件操作的系统调用和相关数据结构,包括文件打开、读写、关闭等。
②文件系统结构描述文件系统的组织结构和实现方式,包括超级块、索引节点、块位图等。
三、实验步骤3.1 环境搭建搭建实验环境,包括安装Linux操作系统、编译器等。
3.2 进程管理实现根据设计要求,实现进程创建、调度、同步与通信等功能。
3.3 内存管理实现根据设计要求,实现内存分配、页面置换等功能。
3.4 文件系统实现根据设计要求,实现文件操作和文件系统结构。
3.5 测试与调试编写测试用例,对实现的操作系统内核进行测试和调试,并记录实验结果。
四、实验结果分析分析测试结果,评估实验过程中遇到的问题和解决方法,总结操作系统内核的性能和功能特点。
五、实验总结对实验过程中的收获和经验进行总结,提出改进和优化的建议。
哈工大《操作系统》实验2
问题回答:Linux 0.11的系统调用最多能传递几个参数?你能想出办法来扩大这个限制吗?
Linux 0.11内核中用户程序能够向内核最多直接传递三个参数,当然也可以不带参数。
为了方便执行,内核源代码在include/unistd文件中定义了宏函数_syscalln(),其中n代表携带的参数个数,可以分别。
因此最多可以直接传递3个参数。
如果需要传递多个参数,大块数据给内核,则可以传递这块数据的指针值。
例如系统调用int read(int fd,char buf,int n)在其宏形式_syscall3(int, read, int, fd, char, buf, int, n),对于include/unistd中给出的每个系统调用宏,都有2+2*n个参数。
其中第一个参数对应系统调用返回值的类型;第2个参数是系统调用的名称;随后是系统调用所携带参数的类型和名称。
哈工大威海计算机操作系统原理实验报告2
计算机操作系统原理
实验报告
专业:1104202
学号:110420212
姓名:李敖
哈尔滨工业大学(威海)
实验二进程及其资源管理
一、实验目的
1.理解资源共享与互斥特性以及操作系统管理资源的基本方法。
2.学会使用高级语言进行多线程编程的方法。
3.掌握利用VC++或Java线程库实现一个管理器,用来实现操作系统对进程及其资源的管理功能。
4.通过该实验,学生可在源代码级完成进程及其资源管理方案的分析、功能设计、编程实现,控制进程间的同步、互斥关系。
二、实验要求
1.知识基础:学生应在完成对进程和线程、调度、死锁等章节的学习后进行。
2.开发环境与工具:
硬件平台——个人计算机。
软件平台——Windows操作系统,根据需要,任选安装VC++语言、java 语言或C语言开发环境。
三、实验内容
1.开发一个函数,建立进程控制块和资源控制块结构,并实现相关数据结构的初始化。
2.开发一系列操作,由进程调用这些操作,达到控制进程申请或释放各种资源的目的。
四、程序流程图
1.进程初始化
2.优先级策略调度
五、实验结果
创建进程1
创建进程2
查看正在运行的进程
替换进程
删除进程
进程调度进程1
进程2
进程3
FCFS
HPF
六、结果分析
有上述程序运行结果可知,此次试验已经基本达到了实验要求,能够实现进程的创建、查看、替换、删除操作以及进程的调度。
不过,在进程的创建中,要求每个资源要用到3个资源,对于再多的资源就无法保证了。
哈工程操作系统第二个
哈工程操作系统第二个作者: 日期:操作系统实验报告课程名称操作系统实验课程编号实验项目名称操作系统的启动学号年级三计算机科学姓名专业与技术计算机科学与技学生所在学院指导教师初妍术实验实验室名称地点哈尔滨工程大学计算机科学与技术学院第二讲操作系统的启动一、实验概述1. 实验名称操作系统的启动2. 实验目的(1)跟踪调试E0在P(机上从加电复位到成功启动的全过程,了解操作系统的启动过程。
(2)查看E0启动后的状态和行为,理解操作系统启动后的工作方式。
3. 实验类型(验证、设计)验证4. 实验内容(1)准备实验(2)调试EOS操作系统的启动过程二、实验环境EOS操作系统、Bochs模拟器、Virtual PC虚拟机软件、NASM汇编、BIO (Basic In put/Output System)三、实验过程1•准备实验(1)启动OS Lab(2)新建一个EOS Kernel项目(3)在项目管理器”窗口中打开boot文件夹中的boot.asm和loader.asm两个汇编文件。
(4)生成项目(5)生成完成后,使用Windows资源管理器打开项目文件夹中的Debug文件夹。
找到boot.asm生成的软盘引导扇区程序boot.bin文件,该文件的大小是512 字节。
找到由loader.asm生成的loader.bin文件,记录下此文件的大小1566字节,在下面的实验中会用到。
找到由其它源文件生成的操作系统内核文件kernel.dll 2调试EOS操作系统的启动过程(1)使用Bochs做为远程目标机(2)调试BIOS程序在Con sole窗口中输入调试命令sreg后按回车,CS寄存器的值为OxfOOO。
输入调试命令r后按回车,显示当前CPU中各个通用寄存器的值J. + “・W 叭k ■ lit Cn -ft Bit■斛叶dM'hC! 4 <> Pit A-lr^ I. "pflidmr A T CS 4 # VF4I ^)<WW-EiLv-a: M 2- ■ II l^aF:*B.H -1貫電I■才F LW E.占帖那出汀刊■+ • ■ I 帕独值E! i1!1-对二■M.J9M童牛F IjT.h&M^ 益:力■ (H i 拆千HtRJt毎UOT K I Ulp ' f V I ' hlTNi.liW-JS 一二输入调试命令xp/1024b 0x0000,查看开始的1024个字节的物理内存输入xp/512b0x7c00,查看软盘引导扇区应该被加载到的内村位置,输出的内存之都是0(3)调试软盘引导扇区程序软盘引导扇区程序的主要任务就是将软盘中的loader.bin文件加载到物理内存的>'La«jMhHd ii4 «【fid "・iK拗朮・4|1*占悅