OS实验报告1

合集下载

高级OS实验一文件系统实验报告

高级OS实验一文件系统实验报告

实验1:Vnod e和Inod e数据结构及缓存一、实验内容及目的为了更好地支持多种类型的文件系统,Solaris操作系统在设计上使用了一种特殊的结构:虚拟文件系统框架。

在虚拟文件系统中,操作系统内核通过vnode来识别每个活动文件,对于一个具体的文件系统,例如UFS,则是由Inode来识别具体的文件。

本实验的目的是观察Solaris操作系统内核中Vnode和Inode数据结构,了解它们之间的关系,同时学习使用mdb 在内核中查找指定的数据结构。

二、实验步骤1.启动一个shell,使用vi编辑器生成文件/work/exp_design/test.txt,内容为字符串“This is a file for UFS testing.”。

2.退出vi编辑器,使用命令#/usr/sfw/bin/gcc file_access.c编译生成可执行程序a.out。

3.运行“mdb -k”,进入内核模块调试程序。

4.启动另一个shell,运行./a.out。

结果为:The file descriptor returned is 3The data read from the file tis This is a5.切换回正在运行mdb的shell,获取进程a.out的地址:> ::ps!grep a.outR 843 804 843 804 0 0x42004000 ffffffff83d25dd8 a.out ffffffff83d25dd8这个地址是proc类型的数据,也就是进程的pcb。

6.使用命令fd获得有关这个进程打开文件的file类型数据结构的地址。

> fffffffff83d25dd8::fd 3ffffffff84ldee387.打印出这个file数据结构的内容。

> ffffffff84ldee38::print struct file{f_tlock = {_opaque = [0]}f_flag = 0xlf_pad = 0xbaddf_vnode = 0xffffffff84181140f_offset = 0x9f_cred = 0xfffffff83a95bd0f_audit_data = 0f_count = 0x1}其中f_vnode就是这个文件的vnode地址。

OS实验报告(1)

OS实验报告(1)
(3)置换算法:请分别考虑OPT、FIFO和LRU算法。
(4)作业中指令的访问次序按下述原则生成:
•50%的指令是顺序执行的。
•25%的指令是均匀分布在前地址部分。
•25%的指令时均匀分布在后地址部分。
具体实施办法参见实验指导书。
3实验结果(给出编写的程序源代码和运行结果的截图)
(2)假设初始状态下,可用的内存空间为640KB,并有下列的请求序列:
•作业1申请130KB。
•作业2申请60KB。
•作业3申请100KB。
•作业2释放60KB。
•作业4申请200KB。
•作业3释放100KB。
•作业1释放130KB。
•作业5申请140KB。
•作业6申请60KB。
•作业7申请50KB。
计算机操作系统
实验报告
学号:
姓名:
提交日期:
XXXX-XX-XX
成绩:
东北大学秦皇岛分校
实验1使用动态优先权的进程调度算法的模拟
1实验目的
(1)加深对进程概念的理解
(2)深入了解系统如何组织进程,创建进程
(3)进一步认识如何实现处理机调度
2实验内容
(1)实现对N个进程采用动态优先权优先算法的进程调度。
(2)每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:
进程标识ID。
进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。
进程已占用的CPU时间CPUTIME。
进程还需占用的CPU时间ALLTIME。当进程运行完毕时,ALLTIME变为0。
进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,将进入阻塞状态。
1实验目的

OS实验报告格式

OS实验报告格式

OS实验报告格式实验目的:本次实验旨在了解操作系统的基本概念和原理,以及对操作系统的功能和特性进行深入了解。

实验原理:操作系统是计算机系统中的重要组成部分,它承担着管理硬件资源、提供用户接口、调度任务等关键任务。

操作系统的核心功能包括进程管理、内存管理、文件系统管理和设备管理等。

在本次实验中,我们将通过实践操作系统的基本命令和功能,来加深对操作系统的理解和掌握。

实验步骤:1.打开计算机,启动操作系统。

在实验开始之前,首先需要启动计算机并进入操作系统的界面。

2.运行命令行工具。

在操作系统中,通过命令行工具可以执行各种操作系统命令,如查看系统信息、管理文件、运行程序等。

3. 创建文件和目录。

在命令行工具中,可以使用相应的命令来创建文件和目录,如mkdir命令用于创建目录,touch命令用于创建文件。

4.编写简单程序并运行。

在操作系统中,可以使用编程语言编写程序,然后通过编译运行的方式来执行程序。

5.查看系统信息。

通过系统命令可以查看操作系统的信息,如操作系统版本、内核版本、CPU信息等。

6.进程管理。

在操作系统中,可以通过相应的命令来管理进程,如查看当前运行的进程、杀死指定进程等。

7.内存管理。

操作系统通过内存管理来管理系统的内存资源,如分配和释放内存空间等操作。

8.文件系统管理。

在操作系统中,可以通过文件系统管理命令对文件进行管理,如查看文件列表、复制文件、删除文件等。

9.设备管理。

操作系统通过设备管理来管理计算机的硬件设备,如打印机、网络设备等。

实验结果:通过本次实验,我对操作系统的基本概念和功能有了更深入的了解。

我学会了如何使用命令行工具来管理文件和目录,如何编写程序并运行,如何查看系统信息,如何管理进程和内存,如何管理文件系统和设备等。

这些都是操作系统中非常重要的功能,对于理解和掌握操作系统至关重要。

实验总结:通过本次实验,我认识到了操作系统是计算机系统中的核心组件,它负责管理系统的各种资源并提供用户接口。

OS实验一

OS实验一


进程时间 片数为0? 是 撤消该进程
撤消该进程

进程队列空?

否 结束 是 进程队列空?
2、时间片轮转算法说明 (1)PCB的结构(如下图所示):轮转法中,设PCB的结构如 右图所示,其中各数据项的含义如下: Id:进程标识符号,取值1—5。 Span:在某一轮中,分配给此进程的时间片数,取值1—3。 Used:现运行进程在本轮执行过程已用的时间片数。 Need:进程尚需的CPU时间数,初值表示该进程需要运行的 总时间,取值范围5—10。并随机产生,每运行一个时间片 need减1;need为0则进程结束。 Status:进程状态R(运行),W(就绪),F(完成);初始时 所有进程处于就绪状态。 Next:指向就绪队列中下一个进程的PCB的指针。
OS实验一
进程调度
1、实验目的:本次实验要求用C语言编写一个进程调度 模拟程序,使用优先级或时间片轮转法实现进程调 度。目的是理解进程调度算法及其应用。 2、实验环境:Turbo C 2.0/3.0或VC++6.0 3、实验学时: 4学时,必做实验。 4、实验内容 1)设计有5个进程并发执行的模拟调度程序,每 个程序由一个PCB表示。 2)模拟调度程序可任选两种调度算法之一实现。 3)程序执行中应能在屏幕上显示出各进程的状态 变化,以便于观察调度的整个过程。
RUN
1
HEAD
Tail
3
5
… …
2
0 …

RUN ----当前运行进程指针; HEAD──就绪进程队列的PCB链链首指针; TAIL──就绪进程队列的PCB链链尾指针;
… R
W
W
W
输入调度算法Alg
pritity

OS实验一

OS实验一
1、中断向量表
00000H
IP CS
中断 类型0
00003H
003FFH
中断 类型 255
2、用到的DOS系统功能调用 31H 终止用户程序并驻留内存 35H 取中断向量 25H 置中断向量 09H 显示字符串
3、EXE文件和COM文件的区别
(1)COM文件 只有一个分段,无堆栈段 程序长度小于64KB 程序必须预留100H空间,且在位移 100H处是一条可执行指令 程序中的子程序必须具有近过程属性 (NEAR)。
DOS将一个COM文件装入内存时,寄存器 CS、DS、ES、SS指向PSP的起始地址, 代码装入程序段偏移量为100H处。
CS=DS=ES=SS CS:100H
PSP(100H) 程序
(2)EXE文件 有多个分段 程序长度受当前内存可用空间的限制 程序的起始标号与END语句说明的开 始地址一致。 该程序中的子程序既可为NEAR,也 可为FAR。
实验一 DOS系统调用的扩充
一、目的 了解并掌握扩充DOS系统调用的方法。 二、要求 1、了解DOS系统调用的实现机制: (1) DOS中断类型 (2)中断向量 (3)服务例程驻留 (4)服务的激活
三、内容 1、 在DEBUG状态下,显示中断向量表,找出一个 空闲的中断类型号,以此软中断作为新增加的系统 调用。 2、编写一个汇编程序syscall.asm,完成以下功能: (1)系统调用服务例程 新增加的功能用一个例程来描述,其功能可以很简 单,如显示一个字符串。 (2)初始化程序 设置新的中断向量,驻留新增加的服务例程 3、编写一个用户程序user.asm,调用新增加的功能。
DS=ES CS CS:IP 程序入口
PSP(100H)
程序

os实验报告

os实验报告

华北电力大学实验报告||实验名称 EOS操作系统实验课程名称操作系统||专业班级:网络1202 学生姓名:李忠明学号:************ 成绩:指导教师:王德文实验日期:2.2生成项目2.3执行项目在OS Lab中选择“调试”菜单中的“开始执行(不调试)”,可以执行刚刚生成的2. 在“调试”菜单中选择“启动调试”,Windows3. 激活Windows控制台应用程序的窗口,可以看到窗口中没有输出任何内容,调试命令2. 输入调试命令r后按回车,显示当前CPU中各个通用寄存器的值,其中表示IP寄存器的值为0xfff0。

3. 输入调试命令xp /1024b 0x0000,查看开始的1024个字节的物理内存。

在物理内存的值都为0,说明BIOS中断向量表还没有被加载到此处。

查看EOS启动后的进程和线程的信息:1)在控制台中输入命令“pt”后按回车。

2)输出的进程和线程信息如下图所示6. 查看有应用程序运行时进程和线程的信息:1)待 EOS启动完毕,在EOS控制台中输入命令“hello”后按回车。

此时Hello.exe应用程序就开始执行。

2)迅速按Ctrl+F2切换到控制台2,并输入命令“pt”后按回车。

输出的进程和线程信息如下图所示四、实验总结通过本次试验,对操作系统的启动有了一定了解,对后面的实验有了最基本的认识,实验过程中只要对照课本就可以很好地完成,需要细心操作。

实验三进程的创建一、实验目的及要求练习使用EOS API函数CreateProcess创建进程,掌握创建进程的方法,理解程序和进程的区别,调试跟踪CreateProcess函数的执行过程,了解进程的创建过程,理解进程是资源的分配单位。

二、所用仪器、设备OS Lab实验环境三、实验原理四、实验方法与步骤1.启动OS Lab、新建一个EOS Kernel项目,用debug和release模式分别生成项目,新建EOS应用程序项目;2.练习使用控制台命令创建EOS应用程序的进程3.调试CreateProcess函数4.调试PsCreateProcess函数5.练习通过编程的方式创建应用程序的多个进程去在源代码文件NewTwoProc.c提供的源代码基础上进行修改,要求使用hello.exe同时创建5个进程。

北航os实验报告

北航os实验报告

北航os实验报告北航OS实验报告一、引言操作系统(Operating System,简称OS)是计算机系统中最基础的软件之一,它负责管理和控制计算机硬件资源,为用户和应用程序提供一个可靠、高效的工作环境。

本文将对北航OS实验进行详细的报告和分析。

二、实验目的本次北航OS实验的目的是让学生深入理解和掌握操作系统的基本原理和实现方式。

通过实践,学生将学会设计和实现一个简单的操作系统,了解操作系统的核心功能和运行机制。

三、实验内容1. 系统引导实验开始时,我们需要编写引导程序,将操作系统加载到计算机的内存中,并跳转到操作系统的入口地址开始执行。

这一步骤是整个实验的起点,也是操作系统正常运行的基础。

2. 中断处理操作系统需要能够处理各种中断事件,如时钟中断、键盘中断等。

学生需要实现中断处理程序,使操作系统能够响应和处理这些中断事件,并根据具体情况进行相应的操作。

3. 进程管理操作系统需要能够管理多个进程的创建、调度和终止。

学生需要设计并实现进程管理模块,包括进程控制块(PCB)的数据结构和进程调度算法。

通过合理的调度策略,提高系统的并发性和响应速度。

4. 内存管理操作系统需要管理计算机的内存资源,包括内存的分配和释放。

学生需要设计并实现内存管理模块,使用合适的算法来管理内存的分配和回收,避免内存泄漏和碎片化问题。

5. 文件系统操作系统需要提供文件系统来管理计算机中的文件和数据。

学生需要设计并实现一个简单的文件系统,包括文件的创建、读写和删除等操作。

通过文件系统,用户可以方便地存储和管理自己的数据。

四、实验过程在实验过程中,我们遇到了许多挑战和问题,但通过不断的尝试和调试,我们最终成功实现了一个简单的操作系统。

以下是我们在实验过程中遇到的一些关键问题和解决方案:1. 内存管理在实验过程中,我们发现内存管理是一个非常关键的问题。

如果内存管理不当,容易导致内存泄漏或者内存碎片化,从而影响系统的性能和稳定性。

我们通过设计一个位图来管理内存的分配和释放,使用首次适应算法来分配内存,并通过合理地回收内存来避免内存泄漏问题。

os报告1

os报告1

操作系统第三次哲学家与菜单实验报告
编程完成ncurses菜单
1.要求编程实现哲学家进餐模型
二. 实验结果
Menu
图1.Menu
补充:根据位置坐标控制相应程序的执行,在已有的源程序上进行改动,主要是可执行文件路径,结束后自动返回等,尤为注意的是fifo,先fifo放在线程中执行,然后新建终端执行fifo1.
哲学家进餐
图2.哲学家进餐
补充:模仿生产者消费者程序的流程进行编写,试验中尤为注意死锁的情况。

三.实验总结
通过这两次实验对linux编程仅仅熟悉,收获较大的是哲学家问题,通过此次编程,更深刻的了解了线程的工作原理,会使用部分pthread函数,实验中为了体现筷子的竞争,在eat时采取了随机数延时,让每个哲学家吃面条的时间不同。

OS分析_实验一(实验前)

OS分析_实验一(实验前)

VMware的使用
操作系统安装注意事项
共享资源设置 网络设置
4
实验一:Linux操作系统漏洞扫描和分析 VM使用 ——共享资源设置
安装Vmware Tools工具;
CD-ROM共享方式;
共享文件夹方式; USB方式;
5
实验一:Linux操作系统漏洞扫描和分析 VM使用 ——共享资源设置 Linux下的安装方法(VM6.0)
(# rpm -ivh *.rpm) • #cd vmware-tools-distrib • #./vmware-install.pl (# ./vmware-config-tools.pl)
6
实验一:Linux操作系统漏洞扫描和分析 •使用UltraISO.exe软件将共享 VM使用 ——共享资源设置 • VM—>Setting
虚 拟 机 网 络 设 置
13
桥接网络—VMnet0 实验一:Linux操作系统漏洞扫描和分析 NAT网络—VMnet8 主机网络—VMnet1
虚 拟 机 网 络 设 置
14
实验一:Linux操作系统漏洞扫描和分析 VM使用 ——网络设置
15
实验一:Linux操作系统漏洞扫描和分析 VM使用 ——如何构建局域网—方法一
实验一:Linux操作系统漏洞扫描和分析 若虚拟机为Linux,建议手动配置 VM使用 ——如何构建局域网—方法一
记录宿主 机的DNS
20
IP范围:192.168.17.128~192.168.17.254;
实验一:Linux操作系统漏洞扫描和分析 网关:192.168.17.2; 宿主的DNS:202.106.0.20 VM使用 ——如何构建局域网—方法一

操作系统设备管理实验报告

操作系统设备管理实验报告

操作系统设备管理实验报告1.计算机操作系统计算机操作系统(operating system缩写作OS)是管理计算机硬件与软件资源的计算机的系统程序, 同时也是计算机系统的内核与基石。

操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。

操作系统也提供一个让用户与系统交互的操作界面。

操作系统在计算机系统中的位置1)操作系统位于底层硬件与用户之间, 是两者沟通的桥梁。

用户可以通过操作系统的用户界面, 输入命令。

操作系统则对命令进行解释, 驱动硬件设备, 实现用户要求。

•2)以现代标准而言, 一个标准PC的操作系统应该提供以下的功能: •进程管理: 计算机中的应用程序都是以进程单位运行的, 操作系统调度多个进程到CPU执行的过程称为进程管理。

•内存管理: 操作系统管理计算机内存, 控制着内存的分配和回收, 管理者内存与外存的信息交换, 以及配合硬件做地址转换。

•文件系统: 管理硬盘的数据, 可将数据已目录或者文件的形式存储。

•网络通信:管理与计算机外部的网络通信, 例如通过浏览器浏览网页, 打印文件等。

安全机制: 控制一些安全机制, 包含计算机非法入侵和一些合法校验。

用户界面: 图形界面。

驱动程序:与硬件交互的计算机软件, 操作系统通过驱动程序与硬件交互, 例如:USB驱动。

2.常见的操作系统1)Windowswindows10微软创始人比尔.盖茨Windows操作系统是美国微软公司推出的一款操作系统。

该系统从1985年诞生到现在, 经过多年的发展完善, 相对比较成熟稳定, 是当前个人计算机的主流操作系统。

Windows系统的特点:a、Windows操作系统界面友好, 窗口制作优美, 操作动作易学, 多代系统之间有良好的传承, 计算机资源管理效率较高, 效果较好。

b、Windows操作系统作为优秀的操作系统, 由开发操作系统的微软公司控制接口和设计, 公开标准, 因此, 有大量商业公司在该操作系统上开发商业软件。

OS综合实验报告1

OS综合实验报告1

综合实验报告( 2013 -- 2014 年度第 1 学期)名称:操作系统综合实验题目:基于OS Lab的操作系统综合实验院系:计算机系班级:学号:学生姓名:指导教师:王德文,王艳设计周数: 1成绩:日期:2013 年月日一、课程设计(综合实验)的目的与要求1.正文为宋体,五号字行间距为211.1------------1.2------------二、设计(实验)正文1.正文为宋体,五号字行间距为211.1------------1.2------------三、课程设计(综合实验)总结或结论1.正文为宋体,五号字行间距为211.1------------1.2------------四、参考文献[1] 作者1, 作者2 书名. 出版单位, 版本. 出版日期附录(设计流程图、程序、表格、数据等)一.实验环境的使用1.实验目的熟悉操作系统集成实验环境OS Lab的基本使用方法。

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

2.实验内容:. 学习OS Lab的基本使用方法a.启动OSlabb.新建windows控制台程序项目,eos内核项目,eos应用程序项目;c.生成项目d.执行项目e.调试项目f.项目名称的修改及项目的保存.实验中代码的修改:1)在 func.c 文件中添加函数:int Func (int n) { n = n + 1; return n; }2)点击源代码编辑器上方的console.c标签,切换到console.c文件。

将 main 函数修改为:int main (int argc, char* argv[]){int Func (int n); // 声明Func函数int n = 0;n = Func(10);printf ("Hello World!\n");return 0;}问题答案:EOS SDk文件夹的目的和作用:主要供EOS应用程序使用。

OS实验报告一分析

OS实验报告一分析
信息工程学院
计算机操作系统实习报告
学院:信息工程学院
班级:信息132
姓名:周蕾
学号:2013013252
成绩:
实验一 进程调度实验
一、目的要求
用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。
二、例题:
进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。
第三次中断,进程4完成;进行调度时,将进程4从就ቤተ መጻሕፍቲ ባይዱ队列中删除;
第四次中断、调度,就绪队列中进程1的优先序最大,调度进程1;进程0优先序减一,重新插入就绪队列;
第五次中断、调度,进程1优先数减一后插入就绪队列,调度进程0;
进程0由于被调度的次数的增加,优先数减小,被调度机会减小;
4.2
输入设置的时间片大小为2
{
/*插入到当前进程前面*/
p->link=second;
first->link=p;
second=NULL;//完成插入后,second置空
insert=1;//完成插入,insert置1
}
else /*插入进程优先数最低,则插入到队尾*///继续往队列后找
{
first=first->link;
second=second->link;
scanf("%d",&p->ntime);
printf("\n");
p->rtime=0;
p->state='w';
p->link=NULL;
sort(); /*调用sort函数*/
}

实验一、二(OS)

实验一、二(OS)

实验一进程同步和互斥(建议4学时)一、实验目的1.掌握临界资源、临界区概念及并发进程互斥、同步访问原理。

2.学会使用高级语言进行多线程编程的方法。

3.掌握利用VC++或Java语言线程库实现线程的互斥、条件竞争,并编码实现P、V 操作,利用P、V操作实现两个并发线程对有界临界区的同步访问。

4.通过该实验,学生可在源代码级完成进程同步互斥方案的分析、功能设计、编程实现,控制进程间的同步、互斥关系。

二、实验要求1.知识基础:学生应在完成进程和线程及调度等章节的学习后进行。

2.开发环境与工具:硬件平台——个人计算机。

软件平台-Windows操作系统,vc++语言或Java语言开发环境。

3.运用高级语言VC++或Java语言线程库及多线程编程技术进行设计实现。

三、实验内容1.实现临界资源、临界区、进程或线程的定义与创建。

2.利用两个并发运行的进程,实现互斥算法和有界缓冲区同步算法。

四、实验方案指导该实验方案由以下几个关键设计项目组成:1.并发访问出错。

即设计一个共享资源,创建两个并发线程,二者并发访问该共享资源。

当没有采用同步算法设计时,线程所要完成的某些操作会丢失。

2.互斥锁。

并发线程使用线程库提供的互斥锁,对共享资源进行访问。

3.软件方法。

设计并编程实现计数信号量、P操作函数、V操作函数,并发线程通过调用P,V操作函数实现线程的互斥。

4.同步访问多缓冲区。

利用上面的软件方法完成P,V操作,可实现两个线程对多缓冲区的同步访问。

五、实验方案实现范例以下是对该项目中包含的部分设计功能的实现方法、实现过程、技术手段的描述,供师生参考。

1.模拟线程并发运行。

假设我们使用POSIX线程库,而POSIX并没有真正提供线程间的并发运行需求。

我们设计的系统应支持符合RR调度策略的并发线程,每个线程运行一段时间后自动挂起,另一个线程开始运行。

这样一个进程内所有线程以不确定的速度并发执行。

2.模拟一个竞争条件——全局变量。

OS 操作系统 实验1

OS 操作系统 实验1
OS实验
实验步骤
1. 选择进入windows 2000.单击桌面上的 Linux80图标,打开VMWare虚拟软件
实验步骤
2. 单击"start the machine",启动Linux虚拟 系统
实验步骤
3. 以超级用户的身份登录进入操作系统
– 输入用户名:root(回车) – 输入密码:123456(回车)
2.chgrp Βιβλιοθήκη 令– 改变文件的用户组所有权属性. – 格式:chgrp 新组名 文件名
3.chmod 命令
– 改变文件有关的存取方式. – 格式:chmod 值 文件名
4.chown 命令
– 改变文件主. – 格式:chown 新用户 文件名
5.cp 命令
– – 拷贝一个文件. 格式:cp 文件1 文件2
2. 掌握C语言的编辑,编译, 运行的过程
(1) 在#提示符下,键入vi first.c,进 入文本编辑器,键入a进入插入方式 (左下角有提示),开始编写first.c文 件
(2) 编写完毕,按"ESC"键(键盘左上 角),再键入":wq"键保存后退出
(3) 在#提示符下,使用命令 "gcc – o first first.c"对文件进行编译
(4) 编译成功,当前目录下多了一个first 文件
(5) 使用命令"./first"运行first文件,察 看结果.(./表示当前目录下)
3.掌握进程创建系统调用的使用
#include <stdio.h> main() { int j,p1,p2;
p1=fork(); /* 创建一个进程 */
15.vi命令

OS实验报告格式

OS实验报告格式

(此文档为word格式,下载后您可任意编辑修改!)学年第一学期实验一 Windows多线程【开发语言及实现平台或实验环境】C++C#Microsoft Visual Studio 6.0 Microsoft Visual Studio .NET【实验目的】(1) 进一步理解操作系统的并发性;(2) 了解Windows线程创建方法,并通过查阅资料理解各参数的含义;(3) 了解多线程程序设计方法,并进行简单应用。

【实验要求】(1) 逐程序进行简要分析、运行各程序并仔细阅读注释;(2) 查阅MSDN或其他资料,掌握相关系统调用使用方法和参数含义;(3) 完成实验报告。

【实验结果与分析】Sleep是阻塞线程函数。

它会在当前语句阻塞一段时间,参数是以11000秒为单位的,线程1和主线程并发执行,Sleep(10) 使当前线程放弃目前的时间片,并且在10ms 内不会被再次调度。

会使主进程和分进程同时被调度,进程也有父子关系。

父进程退出后子进程也会退出,而加入Sleep后主进程先停止10后子进程就有时间进行了。

加入循环,使得俩个进程交替执行,出现俩个1,俩个6是因为不可再现性,即俩个进程同时迈出同一部步,俩个进程中存在共享变量。

因为加入while所以不需要sleep,父子进程也能同时进行。

加入sleep(1000)后父进程有足够的时间运行子进程加入俩个sleep(1)后,有可能到thread1 is sell tickets:时间片就停了,tickets没--,还可以运行thread2 is sell tickets:"<<tickets—也就是说tickets变为0,返回再运行thread1 is sell tickets 时就卖0号票了【实验思考及总结】………………………加入循环,使得俩个进程交替执行Sleep是阻塞线程函数。

它会在当前语句阻塞一段时间,参数是以11000秒为单位的线程也有父子关系。

os实验

os实验

操作系统教程《实验报告》班级:姓名:学号:指导教师:实验一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++源程序的文件名。

步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。

编译成可执行文件。

步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows “命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:E:\课程\os课\os实验\程序\os11\debug>hello.exe运行结果 (如果运行不成功,则可能的原因是什么?) :________ _______________________________________________________________________________(2)计算进程在核心态运行和用户态运行的时间步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。

步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。

OS综合实验报告1

OS综合实验报告1

综合实验报告( 2013 -- 2014 年度第 1 学期)名称:操作系统综合实验题目:基于OS Lab的操作系统综合实验院系:计算机系班级:学号:学生姓名:指导教师:王德文,王艳设计周数: 1成绩:日期:2013 年月日一、课程设计(综合实验)的目的与要求1.正文为宋体,五号字行间距为211.1------------1.2------------二、设计(实验)正文1.正文为宋体,五号字行间距为211.1------------1.2------------三、课程设计(综合实验)总结或结论1.正文为宋体,五号字行间距为211.1------------1.2------------四、参考文献[1] 作者1, 作者2 书名. 出版单位, 版本. 出版日期附录(设计流程图、程序、表格、数据等)一.实验环境的使用1.实验目的熟悉操作系统集成实验环境OS Lab的基本使用方法。

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

2.实验内容:. 学习OS Lab的基本使用方法a.启动OSlabb.新建windows控制台程序项目,eos内核项目,eos应用程序项目;c.生成项目d.执行项目e.调试项目f.项目名称的修改及项目的保存.实验中代码的修改:1)在 func.c 文件中添加函数:int Func (int n) { n = n + 1; return n; }2)点击源代码编辑器上方的console.c标签,切换到console.c文件。

将 main 函数修改为:int main (int argc, char* argv[]){int Func (int n); // 声明Func函数int n = 0;n = Func(10);printf ("Hello World!\n");return 0;}问题答案:EOS SDk文件夹的目的和作用:主要供EOS应用程序使用。

OS实验一

OS实验一

OS实验一姓名、班级、学号、日期实验一windows2000进程的“一生”一、实验概述:该实验共有3个小实验,分别是:4.1创建进程;4.2正在运行的进程;4.3终止进程。

二、实验目的:1.通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解windows2000进程的“一生”。

2.通过写作和分析实验程序,自学建立进程、观测进程和中止进程的程序设计方法。

实验1.1:创建进程一、实验内容1)调试实验3-5中的程序。

2)观察并分析程序。

二、实验过程及结果步骤1:登录进入windows2000professional。

步骤2:在“已经开始”菜单中单击“程序”-“microsoftvisualstudio6.0”c“microsoftvisualc++6.0”命令,进入visualc++窗口。

步骤5:编程顺利完成后,单击“build”菜单中的“build3-5.exe”命令,创建3-5.exe可以谓行文件。

步骤6:在工具栏单击“executeprogram”(执行程序)按钮,或者按ctrl+f5键,或者单击“build”菜单中的“execute3-5.exe”命令,继续执行3-5.exe程序。

步骤7:按ctrl+s键可暂停程序的执行,按ctrl+pause(break)键可终止程序的执行。

实验表明:1)本实验显示了创建子进程的基本框架。

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

2)目录3-5展现的就是一个直观的采用createprocess()api函数的例子。

首先构成直观的命令行,提供更多当前的exe文件的选定文件名和代表分解成克隆进程的号码。

运行结果分析:每次继续执行结果processid一直可以变小,但cloneid维持不变都就是0三、回答问题1)(融合背景科学知识提问)该程序中采用的createprocess()api函数,此函数的大多数数都可行ViBe,但是建立标志参数采用了:create_new_console,标志,指示新进程分配它自己的控制台,这使得运行示例程序时,在任务栏上产生许多活动标记。

西工大计算机操作系统实验报告OS1

西工大计算机操作系统实验报告OS1

评语: 课中检查完成的题号及题数:课后完成的题号与题数:成绩: 指导教师:实验报告一实验名称:Linux操作系统的安装及使用日期:2013-5-12一、实验目的:1. 学习Linux操作系统的安装,体会操作系统为了方便用户,不断改进的安装过程;2. 熟悉Linux系统的登录和退出,并熟悉它常用命令的操作使用方法。

二、实验内容:1. 了解磁盘分区的方式,掌握磁盘分区工具软件PQMagic或其他类似功能的软件;2. 了解Linux对硬件(CPU、内存和硬盘空间)的要求、安装过程和LILO的安装;3. 进入和退出系统的命令,特别是进入X-Windows图形界面,有关文件系统中的目录创建、修改和删除,有关文件系统中的文件建立、删除、编辑、查询、归档和压缩等和有关系统管理等。

三、项目要求及分析:1)Linux操作系统的安装(1) 收集硬件配置资料(硬盘空间大小、显卡类型、显存大小、网卡类型等基本信息);(2) 对于要安装Linux而又没有预留出自由空间,可利用Linux光盘自带的分区工具来拆分基本分区;也可以利用DOS下的调整分区程序PQMagic来拆分基本分区或逻辑分区,并将PQMagic安装在另一个分区中;(3) Linux对不同介质的安装方法(直接从光盘引导完成安装,要求CMOS和光盘都能支持光盘引导;从硬盘完成安装,可事先将Linux软件包拷入硬盘的一个分区,将Linux安装到硬盘的另一个分区;网络安装,通过网络文件系统NFS或FTP并安装到硬盘。

);(4) 使用FDISK添加Linux主分区和交换分区(swap);(5) 格式化分区;(6) 选择安装内容;(7) 设置root用户的口令;(8) 设置网卡的中断向量号、I/O地址、DNS和网络的子网掩码等;(9) 安装LILO,实现操作系统的双引导。

2)Linux操作系统的使用(1) 登录、退出和关闭系统;(2) man命令的使用;(3) –help命令的使用;(4) dir(ls)命令的使用;(5) less(more)分页浏览文件命令的使用;(6) touch命令的使用;(7) whatis命令的使用;(8) apropos命令的使用;(9) locate命令的使用;(10) whereis命令的使用;(11) find命令的使用;(12) sort命令的使用;(13) tar命令的使用;(14) 解压缩归档文件命令的使用;(15) mc程序的使用;(16)cd改变目录;(17)pwd查看当前目录;(18)mkdir创建新目录;(19)cp文件拷贝;(20)cat在屏幕上显示文件内容3)C语言程序的编译Linux环境下C语言使用gcc编译器对程序进行编译。

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

实验1 Ubuntu Linux操作系统及开发环境
学生姓名张锦涛学号20091602310002 专业班级2011级计本1班实验地点信息学院222 实验日期2011-04-19 指导教师张春元、卢春燕实验环境Ubuntu Linux + gcc+g++ 实验学时2学时
1.实验目的
(1)熟悉Ubuntu Linux操作系统;
(2)掌握vi编辑器的使用;
(3)掌握gcc编译器与g++编译器的使用。

2.实验内容
(1)用vi编辑器和C语言编辑实现如下程序ex1_1.c,用gcc编译并运行
#include <stdio.h>
//输入3个整数,求其最大值
main(){
int a,b,c,max;
printf("请输入3个整数”);
scanf("%d,%d,%d",&a,&b,&c);
if(a>=b && a>=c)
max=a;
else if(b>=a && b>=c)
max=b;
else if(c>=a && c>=b)
max=c;
printf("3个整数的最大值=%d\n",max);
}
编译:gcc ex1_1.c –o ex1_1
运行:./ex1_1
(2)用vi编辑器和C++语言输入以下程序,用g++编译并运行
#include <iostream>
using namespace std;
//输入一个年份,判断该年份是否是闰年
int main(){
int year;
bool IsLeapYear;
cout << "Enter the year: ";
cin >> year;
IsLeapYear = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
if (IsLeapYear)
cout << year << " is a leap year" << endl;
else
cout << year << " is not a leap year" << endl;
return 0;
}
编译:gcc ex1_2.cpp –o ex1_2
运行:./ex1_2
3.实验过程及分析
(1)实验内容1采用vi编辑器编辑和gcc编译运行截屏如下:
(2)实验内容2采用vi编辑器编辑和g++编译运行截屏如下:
4.实验总结(写出实验中的心得体会)。

相关文档
最新文档