文档库 最新最全的文档下载
当前位置:文档库 › 2014-2015(1)操作系统实验

2014-2015(1)操作系统实验

2014-2015(1)操作系统实验
2014-2015(1)操作系统实验

实验项目名称:进程的同步(实验一)

1、实验目的

(1) 掌握进程和线程基本概念和属性;

(2) 掌握用PV操作解决并发进程的同步问题;

(3) 掌握用于同步的信号量初值的设置;

(4) 掌握如何处理共享资源的直接制约关系。

2、实验内容

(1) 设计一个模拟若干售票网点的售票程序。界面可以参考图1。还应设计多个后台售票线程并发运行。

图1售票

(2) 模拟:桌上有一只盘子,每次只能放入一个水果。爸爸专向盘子中放苹果,妈妈专向盘子中放桔子,一个女儿专等吃盘子里的苹果,一个儿子专等吃盘子里的桔子。只要盘子空则爸爸或妈妈都可以向盘子放一个水果,仅当盘子中有自己需要的水果时,儿子或女儿可以从盘子中取出水果。放-取水果的几种情况如图2(a)~(f)所示,可以参照进行设计。

(a)盘子空时取水果 (b)父亲放入苹果

(c) 儿子取水果 (d) 女儿取水果

(e)儿子取走桔子 (f)盘子满时放水果

图2 放-取水果

(3) 自选其它能反映进程互斥问题的应用。

实验项目名称:处理机调度(实验二)

1、实验目的

(1) 掌握几种处理机调度算法的基本思想和特点;

(2) 理解并发与并行的区别;

(3) 比较几种算法的特点。

2、实验内容

编写程序模拟处理机调度,参照图3。

(1) 时间片轮转

(2) 动态优先权调度

(3) 高响应比优先调度

图3 模拟处理机调度

实验项目名称:银行家算法(实验三)

1、实验目的

银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。

2、实验内容

(1) 设计进程对各类资源最大申请表示及初值确定。

(2) 设定系统提供资源初始状况。

(3) 设定每次某个进程对各类资源的申请表示。

(4) 编制程序,依据银行家算法,决定其申请是否得到满足。

具体设计可参照图4(a)~(c) 进行。

(a) 某时刻系统资源情况

(b)测试安全性

(c)安全序列

图4银行家算法

实验项目名称:存储器管理(实验四)

1、实验目的

存储器是计算机系统的重要组成部分。本实验要求用高级语言编写和调试一个简单的没有虚拟内存的系统中的内存管理—动态分区管理程序。加深理解内存的分配与回收,分配与回收的策略、地址映射、内存保护等概念,并掌握动态分区这种内存管理的具体实施方法。

2、实验内容

设计一个模拟内存管理中采用“动态分区”方式的存储器管理程序。动态申请一段内存,对该段内存进行“动态分区”方式的管理,选择至少一种分配策略,建立相应的数据结构(如内存分配表,内存空闲表等),可以动态申请和释放内存空间,给出当前“内存”的使用情况。

可以参照图5(a)~(c)进行设计。

(a)已创建若干进程

(b)撤消进程对话框

(c) 某时刻进程占用内存状态

图5动态分区管理

实验项目名称:设备管理(实验五)

1、实验目的

了解设备管理的功能和任务,理解SPOOLing的概念、系统组成和特点。本实验要求用高级语言编写和调试一个简单的模拟利用SPLOOLing技术进行输入/输出的程序。加深理解将一台物理I/O设备虚拟为多台逻辑设备,同时允许多个用户共享一台物理设备的具体实施方法。

2、实验内容

模拟一个利用SPOOLing技术的输入/输出管理,建立相应的数据结构及缓冲空间,给出当前系统中运行进程的设备使用情况和等待队列的情况。

实验项目名称:文件管理(实验六)

1、实验目的

了解文件管理的功能和任务,理解文件系统组成和特点,熟悉文件系统的访问和操作。实验要求用高级语言编写和调试一个简单的模拟文件管理程序。加深理解有关盘块的分配与回收、目录管理等的具体实施策略。

2、实验内容

模拟一个资源管理器进行文件操作,包括建立和删除目录、建立和删除文件等基本文件操作。建立相应的数据结构(如:位示图等),模拟盘块管理。可以参照图6界面进行设计。

图6

操作系统实验实验1

广州大学学生实验报告 1、实验目的 1.1、掌握进程的概念,明确进程的含义 1.2、认识并了解并发执行的实质 2.1、掌握进程另外的创建方法 2.2、熟悉进程的睡眠、同步、撤消等进程控制方法 3.1、进一步认识并发执行的实质 3.2、分析进程竞争资源的现象,学习解决进程互斥的方法 4.1、了解守护进程 5.1、了解什么是信号 5.2、INUX系统中进程之间软中断通信的基本原理 6.1、了解什么是管道 6.2、熟悉UNIX/LINUX支持的管道通信方式 7.1、了解什么是消息 7.2、熟悉消息传送的机理 8.1、了解和熟悉共享存储机制 二、实验内容 1.1、编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统 中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。试观察记录屏幕上的显示结果,并分析原因。 1.2、修改上述程序,每一个进程循环显示一句话。子进程显示'daughter …'及 'son ……',父进程显示'parent ……',观察结果,分析原因。 2.1、用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容 2.2、利用wait( )来控制进程执行顺序 3.1、修改实验(一)中的程序2,用lockf( )来给每一个进程加锁,以实现进程之间的互斥 3.2、观察并分析出现的现象 4.1、写一个使用守护进程(daemon)的程序,来实现: 创建一个日志文件/var/log/Mydaemon.log ; 每分钟都向其中写入一个时间戳(使用time_t的格式) ; 5.1、用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按^c键);捕捉到中断信号后,父进程用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child process1 is killed by parent! Child process2 is killed by parent! 父进程等待两个子进程终止后,输出如下的信息后终止: Parent process is killed! 5.2、用软中断通信实现进程同步的机理

操作系统实验1

#include "stdio.h" #include #include #define getpch(type) (type*)malloc(sizeof(type)) #define NULL 0 struct pcb { /* 定义进程控制块PCB */ char name[10]; char state; int ntime; int rtime; struct pcb* link; }*ready=NULL,*p; typedef struct pcb PCB; void sort() /* 建立对进程进行优先级排列函数*/ { PCB *first, *second; int insert=0; if((ready==NULL)||((p->ntime)<(ready->ntime))) /*运行时间最短者,插入队首*/ { p->link=ready; ready=p; } else /* 进程比较运行时间优先级,插入适当的位置中*/ { first=ready; second=first->link; while(second!=NULL) { if((p->ntime)<(second->ntime)) /*若插入进程比当前进程所需运行时间短,*/ { /*插入到当前进程前面*/ p->link=second; first->link=p; second=NULL; insert=1; } else /* 插入进程运行时间最长,则插入到队尾*/ { first=first->link; second=second->link; } } if(insert==0) first->link=p; } }

操作系统实验_实验1

广州大学学生实验报告 开课学院及实验室:计算机科学与工程实验室 2015年11月11日 实验课 操作系统成绩 程名称 实验项 进程管理与进程通信指导老师陈康民目名称 (***报告只能为文字和图片,老师评语将添加到此处,学生请勿作答***) 进程管理 (一)进程的创建实验 一、实验目的 1、掌握进程的概念,明确进程的含义 2、认识并了解并发执行的实质 二、实验内容 1、编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一 个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。试观察记录屏幕上的显示结果,并分析原因。 2、修改上述程序,每一个进程循环显示一句话。子进程显示'daughter …'及'son ……', 父进程显示'parent ……',观察结果,分析原因。 三、实验步骤 1、编写一段程序,使用系统调用fork( )创建两个子进程。 代码: #include main( ) { int p1,p2; while((p1=fork( ))= = -1); /*创建子进程p1*/ if (p1= =0) putchar('b'); else { while((p2=fork( ))= = -1); /*创建子进程p2*/ if(p2= =0) putchar('c'); else putchar('a'); } } 运行结果:

bca,bac, abc ,……都有可能。 2、修改上述程序,每一个进程循环显示一句话。子进程显示'daughter …'及'son ……',父进程显示'parent ……',观察结果,分析原因。 代码:#include main( ) { int p1,p2,i; while((p1=fork( ))= = -1); /*创建子进程p1*/ if (p1= =0) for(i=0;i<10;i++) printf("daughter %d\n",i); else { while((p2=fork( ))= = -1); /*创建子进程p2*/ if(p2= =0) for(i=0;i<10;i++) printf("son %d\n",i); else for(i=0;i<10;i++) printf("parent %d\n",i); } } 结果:

Linux操作系统实验教程

Linux操作系统实验教程 第1章Linux系统概述 一、Linux系统结构 从操作系统的角度来分析Linux,它的体系结构总体上属于层次结构如下图所示: 从内到外包括三层:最内层是系统核心,中间是Shell、编译编辑实用程序、库函数等,最外层是用户程序,包括许多应用软件。 从操作系统的功能角度来看,它的核心有五大部分组成:进程管理、存储管理、文件管理、设备管理、网络管理。各子系统实现其主要功能,同时相互之间是合作、依赖的关系。进程会管理是操作系统最核心的内容,它控制了整个系统的进程调度和进程之间的通信,是整个系统合理高效运行的关键; 存储管理为其他子系统提供内存管理支持,同时其他子系统又为内存管理提供了实现支持,例如要通过文件管理和设备管理实现虚拟存储器和内外存的统一管理。 二、配置一个双引导系统 如果计算机中已经安装了其他操作系统,并想创建一个引导系统以便兼用Red Hat Linux和另外的操作系统,需要使用双引导。机器启动时,可以选择其中之一,但不能同时使用两者。每个操作系统都从自己的硬盘驱动器或硬盘分区中引导,并使用自己的硬盘驱动器或硬盘分区。 如果计算机上还没有安装任何操作系统,可以使用专门的分区及格式化软件给Windows创建指定大小的分区,Windows的文件系统为FAT,再为Linux系统创建所需要大小的分区(4G或更大),另外再给Linux留100MB 左右的交换分区,Linux的文件系统为ext2。然后就可以安装系统了。应首先安装Windows,然后再安装Red Hat Linux。如果只进行了分区而没有格式化各分区,在安装时可以使用Windows自带的格式化程序和Linux自带的格式化程序进行各自分区的格式化。 当Windows已经被安装,而且已为Linux准备了足够的磁盘空间,就可以安装Linux了。Red Hat Linux安装程序通常会检测到Windows并自动配置引导程序来引导Windows或Red Hat Linux。

上海大学操作系统(二)实验报告(全)

评分: SHANGHAI UNIVERSITY 操作系统实验报告 学院计算机工程与科学 专业计算机科学与技术 学号 学生姓名

《计算机操作系统》实验一报告 实验一题目:操作系统的进程调度 姓名:张佳慧学号 :12122544 实验日期: 2015.1 实验环境: Microsoft Visual Studio 实验目的: 进程是操作系统最重要的概念之一,进程调度又是操作系统核心的主要内容。本实习要求学生独立地用高级语言编写和调试一个简单的进程调度程序。调度算法可任意选择或自行设计。例如,简单轮转法和优先数法等。本实习可加深对于进程调度和各种调度算法的理解。实验内容: 1、设计一个有n个进程工行的进程调度程序。每个进程由一个进程控制块(PCB)表示。进程控制块通常应包含下述信息:进程名、进程优先数、进程需要运行的时间、占用CPU的时间以及进程的状态等,且可按调度算法的不同而增删。 2、调度程序应包含2~3种不同的调度算法,运行时可任意选一种,以利于各种算法的分析比较。 3、系统应能显示或打印各进程状态和参数的变化情况,便于观察诸进程的调度过程。 操作过程: 1、本程序可选用优先数法或简单轮转法对五个进程进行调度。每个进程处于运行R(run)、就绪W(wait)和完成F(finish)三种状态之一,并假设起始状态都是就绪状态W。为了便于处理,程序进程的运行时间以时间片为单位计算。进程控制块结构如下: 进程控制块结构如下: PCB 进程标识数 链指针 优先数/轮转时间片数 占用 CPU 时间片数 进程所需时间片数 进程状态 进程控制块链结构如下:

其中:RUN—当前运行进程指针; HEAD—进程就绪链链首指针; TAID—进程就绪链链尾指针。2、算法与框图 (1) 优先数法。进程就绪链按优先数大小从高到低排列,链首进程首先投入运行。每过一个时间片,运行进程所需运行的时间片数减 1,说明它已运行了一个时间片,优先数也减 3,理由是该进程如果在一个时间片中完成不了,优先级应该降低一级。接着比较现行进程和就绪链链首进程的优先数,如果仍是现行进程高或者相同,就让现行进程继续进行,否则,调度就绪链链首进程投入运行。原运行进程再按其优先数大小插入就绪链,且改变它们对应的进程状态,直至所有进程都运行完各自的时间片数。 (2) 简单轮转法。进程就绪链按各进程进入的先后次序排列,进程每次占用处理机的轮转时间按其重要程度登入进程控制块中的轮转时间片数记录项(相当于优先数法的优先数记录项位置)。每过一个时间片,运行进程占用处理机的时间片数加 1,然后比较占用处理机的时间片数是否与该进程的轮转时间片数相等,若相等说明已到达轮转时间,应将现运行进程排到就绪链末尾,调度链首进程占用处理机,且改变它们的进程状态,直至所有进程完成各自的时间片。 (3) 程序框图

操作系统实验一

本科实验报告 课程名称:操作系统 学号: 姓名: 专业: 班级: 指导教师: 课内实验目录及成绩 信息技术学院

实验(实验一) 1 实验名称:基本shell命令及用户管理 2 实验目的 2.1 掌握安装Linux操作系统的方法。 2.2 掌握Linux操作系统的基本配置。 2.3 了解GNOME桌面环境。 2.4 掌握基本shell命令的使用。 3 实验准备 3.1 下载VMware Workstation虚拟机软件(版本不限)。 3.2 准备Linux操作系统的安装源(内核版本和发行版本均不限)。 注:实验准备、实验内容4.1和4.2作为回家作业布置,同学们利用课余时间可在私人计算机上完成。 4 实验要求、步骤及结果 4.1 安装虚拟机软件。 【操作要求】安装VMware Workstation虚拟机软件,并填写以下4.1.1和4.1.2的内容。 4.1.1【VMware Workstation虚拟机版本号】 4.1.2【主要配置参数】 4.2 安装Linux操作系统。 【操作要求】安装Linux操作系统,版本不限。 Linux发行版本: Linux内核版本:

【主要操作步骤:包括分区情况】 1、创建一台虚拟机安装操作系统时客户机操作系统选择Linux 2、修改虚拟机的安装路径。 3、建一个新的虚拟磁盘,磁盘的空间20GB,并且将单个文件存储虚拟磁盘。 4、设置分区完毕,安装虚拟机 4.3 了解Linux操作系统的桌面环境之一GNOME。 【操作要求】查看桌面图标,查看主菜单,查看个人用户主目录等个人使用环境。【操作步骤1】桌面图标

【操作步骤2】主菜单 【操作步骤3】个人用户主目录 【操作步骤4】启动字符终端

操作系统的启动实验报告

操作系统实验报告 工程大学 计算机科学与技术学院

一.实验概述 1.实验名称:操作系统的启动 2.实验目的: 1)跟踪调试EOS在PC机上从加电复位到成功后启动的全过程,了解操作系统的启动过程; 2)查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。 3.实验类型:验证,设计 4.实验容: 1)准备实验,启动OS Lab,新建一个EOS Kernel项目; 2)调试EOS操作系统的启动过程 ①使用Bochs作为远程目标机 ②调试BIOS程序 ③调试软盘引导扇区程序 ④调试加载程序 ⑤调试核 ⑥查看EOS启动后的状态和行为 二.实验环境 操作系统:windows XP 编译器:Tevalaton OS Lab 语言:C++ 三.实验过程 1.设计思路和流程图: 2.实验过程:

1)在Console窗口中输入调试指令sreg,查看当前CPU中各个段寄存器的值,其中CS寄存器信息行中的“s=0xf000”表示CS寄存器的值为0xf000。 2)输入调试命令r,显示当前CPU中各个通用寄存器的值,“rip: 0x00000000:0000fff0”表示 IP 寄存器的值为 0xfff0。 3)输入调试命令 xp /1024b 0x0000,查看开始的 1024 个字节的物理存。在Console 中输出的这 1K 物理存的值都为 0,说明 BIOS 中断向量表还没有被加载到此处。 4)输入调试命令 xp /512b 0x7c00,查看软盘引导扇区应该被加载到的存位置。输出的存值都为 0,说明软盘引导扇区还没有被加载到此处。 可以验证 BIOS 第一条指令所在逻辑地址中的段地址CS寄存器值是一致的,偏移地址和 IP 寄存器的值是一致的。由于存还没有被使用,所以其中的值都为0。 5)输入调试命令 vb 0x0000:0x7c00,这样就在逻辑地址 0x0000:0x7c00(相当于物理地址 0x7c00)处添加了一个断点。输入调试命令 c 继续执行,在 0x7c00 处的断点中断。中断后会在 Console 窗口中输出下一个要执行的指令,即软盘引导扇区程序的第一条指令。 6)输入调试命令 sreg 验证 CS 寄存器(0x0000)的值。

操作系统实验3答案

实验三操作系统进程管理 一、实验目的 1) 掌握系统进程的概念,加深对Linux / UNIX进程管理的理解。 2) 学会使用ps命令和选项。 3) 列出当前shell中的进程。 4) 列出运行在系统中的所有进程。 5) 根据命令名搜索特定的进程。 6) 使用kill命令终止进程。 7) 根据用户名查找和终止进程。 二、实验内容和相应的答案截图,三、实验结果分析 步骤1:创建一个普通用户(参见实验二),以普通用户身份登录进入GNOME。 步骤2:打开一个“终端”窗口(参见实验二)。 步骤3:回顾系统进程概念,完成以下填空: 1) Linux系统中,几乎每一个启动的进程,都会由内核分配一个唯一的__PID__进程标识符,用于跟踪从进程启动到进程结束。 2) 当启动新进程的时候,内核也给它们分配系统资源,如__内存_和__CPU_。 3) 永远不向父进程返回输出的进程叫做__僵进程__。 4) 由父进程派生出来的进程叫做____子___进程。 5) ___父_进程是一个派生另一个进程的进程。 6) 运行用于提供服务的Linux系统进程是_______________。 7) 如果父进程在子进程之前结束,它创建了一个______________进程。 步骤4:回顾ps命令和信息。基本的ps命令显示当前shell中的进程信息,用户只能够查看当前终端窗口中初始化的进程。输入ps命令,将结果填入表3-3中。 表3-3 实验记录 下面,在当前终端窗口中,练习使用给出的每个选项的ps命令。

输入ps -f 命令,显示运行在系统中的某个进程的完全信息,填入表3-4中。 表3-4 实验记录 步骤5:列出系统中运行的所有进程。 输入ps -ef 命令,显示运行在系统中的各个进程的完全信息。执行该命令,并与ps –f 命令的输出结果对照,一致吗?有何不同? 答:不一致,后者显示了所有进程的完全可用信息,多了很多。 分析当前终端窗口中的输出结果,记录下来用于写实验报告。 a. 显示了多少个进程?答:59 b. 进程ID的PID是什么? c. 启动进程的命令(CMD) 是什么?答:sched d. 请观察,什么命令的PID号是1?答:init[5] e. 执行ps –ef >aaa命令,将ps命令的输出送到文本文件aaa。再次运行cat aaa | wc命令,计算进程的数目。其中,cat是显示文本文件命令。“|”是管道命令,就是将前一个命令的输出作为后一个命令的输入。wc 命令用来计算文本的行数,第一个数字显示的是行的数目,可以用来计算进程的数目。计算出进程数目并做记录。 执行man ps命令,可以打开Linux用户命令手册。了解ps命令的用法。输入wq命令可退出用户手册的阅读。man命令可以执行吗?结果如何? 答:Man ps时出现

操作系统实验全(五个)

操作系统试验指导 —. 课程的性质、目的和任务 操作系统在整个计算机系统软件中占有中心地位。其作用是对计算机系统进行统一的调度和管理,提供各种强有力的系统服务,为用户创造既灵活又方便的使用环境。本课程是计算机及应用专业的一门专业主干课和必修课。通过本课程的学习,使学生掌握操作系统的基本概念、设计原理及实施技术,具有分析操作系统和设计、实现、开发实际操作系统的能力。 二. 实验的意义和目的 操作系统是计算机专业学生的一门重要的专业课程。操作系统质量对整个计算机系统的性能和用户对计算机的使用有重大的影响。一个优良的操作系统能极大地扩充计算机系统的功能,充分发挥系统中各种设备的使用效率,提高系统工作的可靠性。由于操作系统涉及计算机系统中各种软硬件资源的管理,内容比较繁琐,具有很强的实践性。要学好这门课程,必须把理论与实践紧密结合,才能取得较好的学习效果。培养计算机专业的学生的系统程序设计能力,是操作系统课程的一个非常重要的环节。通过操作系统上机实验,可以培养学生程序设计的方法和技巧,提高学生编制清晰、合理、可读性好的系统程序的能力,加深对操作系统课程的理解。使学生更好地掌握操作系统的基本概念、基本原理、及基本功能,具有分析实际操作系统、设计、构造和开发现代操作系统的基本能力。 三.实验运行环境及上机前的准备 实验运行环境: C语言编程环境 上机前的准备工作包括: ●按实验指导书要求事先编好程序; ●准备好需要输入的中间数据; ●估计可能出现的问题; ●预计可能得到的运行结果。 四. 实验内容及安排 实验内容包括进程调度、银行家算法、页式地址重定位模拟,LRU算法模拟和先来先服务算法五个实验。每个实验介绍了实习的目的要求、内容和方法。

操作系统实验总结

操作系统实验总结 学号: 姓名: 班级:

在本学期的计算机操作系统这门课学习当中,为了更好的了解操作系统相关知识,我们通过OS Lab平台做了几个实验。在实验室的过程中,我对课堂上学到的操作系统的一些知识有了新的认识,同时还接触到了操作系统的相关源代码,而且通过实验的运行效果了解了平时我们看不到的操作系统的一些状况,收获还是很大的。下面先简要归纳在实验课上我做的几个实验的主要实验内容和实验步骤: 实验一:实验环境的使用 实验步骤: 1.1启动OS Lab OS Lab每次启动后都会首先弹出一个用于注册用户信息的对话框(可以选择对话框标题栏上的“帮助”按钮获得关于此对话框的帮助信息)。在此对话框中填入学号和姓名后,点击“确定”按钮完成本次注册。观察OS Lab主窗口的布局。OS Lab主要由下面的若干元素组成:菜单栏、工具栏以及停靠在左侧和底部的各种工具窗口,余下的区域用来放置编辑器窗口。 1.2 学习OS Lab的基本使用方法 练习使用OS Lab编写一个Windows控制台应用程序,熟悉OS Lab的基本使用方法(主要包括新建项目、生成项目、调试项目等)。 实验二:操作系统的启动 实验步骤: 2.1 准备实验 启动OS Lab,新建一个EOS Kernel项目,在“项目管理器”窗口中打开boot文件夹中的boot.asm和loader.asm两个汇编文件,按F7生成项目,生成完成后,使用Windows资源管理器打开项目文件夹中的Debug文件夹。找到由boot.asm生成的软盘引导扇区程序boot.bin文件,找到由loader.asm生成的loader程序loader.bin文件,记录下此文件的大小1566字节。 2.2 调试EOS操作系统的启动过程 2.2.1 使用Bochs做为远程目标机 将调试时使用的远程目标机修改为Bochs 2.2.2 调试BIOS程序 按F5启动调试, Bochs在CPU要执行的第一条指令(即BIOS的第一条指令)处中断,从Console窗口显示的内容中,我们可以获得关于BIOS第一条指令的相关信息,然后查看CPU 在没有执行任何指令之前主要寄存器中的数据,以及内存中的数据。 2.2.3 调试软盘引导扇区程序 练习从0x7c00处调试软盘引导扇区程序;查看boot.lst文件;调试过程——软盘引导扇区程序的主要任务就是将软盘中的loader.bin文件加载到物理内存的0x1000处,然后跳转到loader程序的第一条指令(物理地址0x1000处的指令)继续执行loader程序; 2.2.4 调试加载程序 调试过程——Loader程序的主要任务是将操作系统内核(kernel.dll文件)加载到内存中,然后让CPU进入保护模式并且启用分页机制,最后进入操作系统内核开始执行(跳转到kernel.dll的入口点执行); 2.2.5 调试内核 2.2.6 EOS启动后的状态和行为 查看EOS的版本号;查看EOS启动后的进程和线程的信息;查看有应用程序运行时进程和线程的信息

操作系统实验报告

许昌学院 《操作系统》实验报告书学号: 姓名:闫金科 班级:14物联网工程 成绩: 2016年02月

实验一Linux的安装与配置 一、实验目的 1.熟悉Linux系统的基本概念,比如Linux发行版、宏内核、 微内核等。 2.掌握Linux系统的安装和配置过程,初步掌握Linux系统的 启动和退出方法。 3.熟悉Linux系统的文件系统结构,了解Linux常用文件夹的 作用。 二、实验内容 1.从网络上下载VMware软件和两个不同Linux发行版镜像文 件。 2.安装VMware虚拟机软件。 3.在VMware中利用第一个镜像文件完成第一个Linux的安装, 期间完成网络信息、用户信息、文件系统和硬盘分区等配 置。 4.在VMware中利用第二个镜像文件完成第二个Linux的安装, 并通过LILO或者GRUB解决两个操作系统选择启动的问题。 5.启动Linux系统,打开文件浏览器查看Linux系统的文件结 构,并列举出Linux常用目录的作用。 三、实验过程及结果 1、启动VMware,点击新建Linux虚拟机,如图所示:

2、点击下一步,选择经典型,点击下一步在选择客户机页面选择Linux,版本选择RedHatEnterpriseLinux5,如图所示: 3、点击下一步创建虚拟机名称以及所要安装的位置,如图所示: 4、点击下一步,磁盘容量填一个合适大小,此处选择默认值大小10GB,如图所示: 5、点击完成,点击编辑虚拟机设置,选择硬件选项中的CD-ROM(IDE...)选项,在右侧连接中选择“使用ISO镜像(I)”选项,点击“浏览”,找到Linux的镜像文件,如图所示: 6点击确定按钮后,点击启动虚拟机按钮,来到Linux的安装界面,如图所示: 7、到此页面之后,等待自动检测安装,如图所示: 8、等到出现如图所示页面后点击“skip”按钮,跳过检测,直接进入安装设置界面,如图所示: 9、安装设计界面如图所示: 10、点击Next按钮进入设置语言界面,设置语言为“简体中文”,如图所示: 11、点击Nest按钮进入系统键盘设置按钮,设置系统键盘为“美国英语式”,如图所示: 12、点击下一步按钮,弹出“安装号码”对话框,选择跳

操作系统实验报告.

学生学号0121210680225 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称操作系统 开课学院计算机科学与技术学院 指导老师姓名刘军 学生姓名李安福 学生专业班级软件sy1201 2014 — 2015 学年第一学期

《操作系统》实验教学大纲 课程编号: 课程名称:操作系统/Operating System 实验总学时数:12学时 适应专业:计算机科学与技术、软件工程 承担实验室:计算机科学与技术学院实验中心 一、实验教学的目的和任务 通过实验掌握Linux系统下常用键盘命令、系统调用、SHELL编程、后台批处理和C程序开发调试手段等基本用法。 二、实验项目及学时分配 序号实验项目名称实验学时实验类型开出要求 01 Linux键盘命令和vi 2 设计必开 02 Linux下C编程 2 设计必开 03 SHELL编程和后台批处理 2 设计必开 04 Linux系统调用(time) 2 设计必开 05 Linux进程控制(fork) 4 设计必开 三、每项实验的内容和要求: 1、Linux键盘命令和vi 要求:掌握Linux系统键盘命令的使用方法。 内容:见教材p4, p9, p40, p49-53, p89, p100 2、Linux下的C编程 要求:掌握vi编辑器的使用方法;掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。 内容:设计、编辑、编译、连接以及运行一个C程序,其中包含键盘输入和屏幕输出语句。 3、SHELL编程和后台批处理 要求:掌握Linux系统的SHELL编程方法和后台批处理方法。 内容:(1) 将编译、连接以及运行上述C程序各步骤用SHELL程序批处理完成,前台运行。 (2) 将上面SHELLL程序后台运行。观察原C程序运行时输入输出情况。 (3) 修改调试上面SHELL程序和C程序,使得在后台批处理方式下,原键 盘输入内容可以键盘命令行位置参数方式交互式输入替代原键盘输入内容, 然后输出到屏幕。 4、Linux系统调用使用方法。

苏州大学操作系统实验1

实验一Linux系统 实验目的: (1)熟悉Linux操作系统,并尝试在Linux环境下编程。 (2)使用vi编辑器,了解用C语言编写文本处理程序的具体过程。 实验要求: (1)根据报告册上的提示进行操作,创建自己的目录,以及输入编译和执行C 程序。 (2)使用C语言编写一个词频(限英文文章)统计程序,使之能够给出各个单词在输入文件中的出现次数。 (3)使用C语言编写一个反向打印程序,使之能够按与输入文件中文本行相反的次序来打印(即后出现的文本行先打印)。 问题分析: 1.1实验没有具体要求英语文章是从文件中读出,还是直接由用户从屏幕上输入一篇,因此要根据自己的情况确定读取方式。 1.2统计每个单词出现的次数及频率。 1.3将结果输出到屏幕上,要解决如何不重复输出相同单词出现的频率。 1.4如何把用户输入的文本行以相反的顺序输到屏幕上的算法。 实验程序清单: #include #include void main() { char str[500][26]; //定义一个二维字符数组存放单词

const char str1[4]="000"; //定义一个const变量,用于停止输入 const char str2=' '; //定义一个const变量,用于初始化二维数组 int num[500]; //定义一个整型数组,用于单词出现频率的计数 int mark[500]; //定义一个整型数组,用来标记已出现过的单词 int i,j,m,x; int len; double q[500]; //定义一个浮点型数组,用来存放出现频率的数值again: m=0;j=0;i=0;x=0; //对m,j,i,x进行初始化 for(m=0;m<500;m++) //对num,mark,q数组初始化 { num[m]=0; mark[m]=0; q[m]=0; } for(m=0;m<500;m++) //对二维数组str进行初始化 { strcpy(str[m],&str2); } printf("请输入英文文章(单词数限制在500以内,每个单词不大于25个字符)\n"); //对用户的引导语句 printf("输入“000”代表文章输入终止!\n"); //对用户的引导语句 for(m=0;m<500;m++) //使用for循环,将用户输入的单词依次放入二维数组{ scanf("%s",str[m]); if(strcmp(str[m],str1)==0)//直到用户输入000,结束输入 break; } for(i=0;ii) //当j大于i时 { mark[i]=1; //标记此时的mark } num[i]++; //当两个单词相同,num[i]加1 } } q[i]=(double)num[i]/m; //获得单词出现的频率 } for(i=0;i

操作系统实验报告

实验二进程调度 1.目的和要求 通过这次实验,理解进程调度的过程,进一步掌握进程状态的转变、进程调度的策略,进一步体会多道程序并发执行的特点,并分析具体的调度算法的特点,掌握对系统性能的评价方法。 2.实验内容 阅读教材《计算机操作系统》第二章和第三章,掌握进程管理及调度相关概念和原理。 编写程序模拟实现进程的轮转法调度过程,模拟程序只对PCB进行相应的调度模拟操作,不需要实际程序。假设初始状态为:有 n 个进程处于就绪状态,有m个进程处于阻塞状态。采用轮转法进程调度算法进行调度(调度过程中,假设处于执行状态的进程不会阻塞),且每过 t 个时间片系统释放资源,唤醒处于阻塞队列队首的进程。 程序要求如下: 1)输出系统中进程的调度次序; 2)计算CPU利用率。 3.实验环境 Windows操作系统、VC++6.0 C语言

4 设计思想: (1)程序中进程可用PCB表示,其类型描述如下: struct PCB_type { int pid ;// 进程名 int state ;// 进程状态 2——表示“执行”状态 1——表示“就绪”状态 0——表示“阻塞”状态 int cpu_time ; //运行需要的CPU寸间(需运行的时间片 个数) } 用PCB来模拟进程; (2)设置两个队 列,将处于“就绪”状态的进程PCB挂在队列readyxx ;将处于“阻塞”状态的进程 PCB挂在队列blockedxx。 队列类型描述如下: struct QueueNode{

struct PCB_type PCB; Struct QueueNode *next; } 并设全程量: struct QueueNode *ready_head=NULL,//ready 队列队首指针 *ready_tail=NULL , //ready 队列队尾指针 *blocked_head=NULL,//blocked 队列队首指 针 *blocked_tail=NULL; //blocked 队列队尾指 针 (3)设计子程序: start_state(); 读入假设的数据,设置系统初始状态,即初始化就绪队列和 阻塞队列 dispath(); 模拟调度,当就绪队列的队首进程运行一个时间片后,放到就绪队列末尾,每次都是队首进程进行调度,一个进程运行结束 就从就绪队列中删除,当到 t 个时间片后,唤醒阻塞队列队首进程。

操作系统课内实验大纲(2014)

操作系统原理课内实验大纲(2014版) 实验一:用户接口实验 实验目的 1)理解面向操作命令的接口Shell。 2)学会简单的shell编码。 3)理解操作系统调用的运行机制。 4)掌握创建系统调用的方法。 操作系统给用户提供了命令接口和程序接口(系统调用)两种操作方式。用户接口实验也因此而分为两大部分。首先要熟悉Linux的基本操作命令,并在此基础上学会简单的shell 编程方法。然后通过想Linux内核添加一个自己设计的系统调用,来理解系统调用的实现方法和运行机制。在本次实验中,最具有吸引力的地方是:通过内核编译,将一组源代码变成操作系统的内核,并由此重新引导系统,这对我们初步了解操作系统的生成过程极为有利。 实验内容 1)控制台命令接口实验 该实验是通过“几种操作系统的控制台命令”、“终端处理程序”、“命令解释程序”和“Linux操作系统的bash”来让实验者理解面向操作命令的接口shell和进行简单的shell 编程。 查看bash版本。 编写bash脚本,统计/my目录下c语言文件的个数 2)系统调用实验 该实验是通过实验者对“Linux操作系统的系统调用机制”的进一步了解来理解操作系统调用的运行机制;同时通过“自己创建一个系统调用mycall()”和“编程调用自己创建的系统调用”进一步掌握创建和调用系统调用的方法。 编程调用一个系统调用fork(),观察结果。

编程调用创建的系统调用foo(),观察结果。 自己创建一个系统调用mycall(),实现功能:显示字符串到屏幕上。 编程调用自己创建的系统调用。 实验要求 1)按照实验内容,认真完成各项实验,并完成实验报告。 2)实验报告必须包括:程序清单(含注释)、实验结果、实验中出现的问题、观察到 的现象的解释和说明,以及实验体会。

操作系统实验一

. 本科实验报告 课程名称:操作系统 学号: 姓名: 专业: 班级: 指导教师: 课内实验目录及成绩 信息技术学院

实验(实验一) 1 实验名称:基本shell命令及用户管理 2 实验目的 2.1 掌握安装Linux操作系统的方法。 2.2 掌握Linux操作系统的基本配置。 2.3 了解GNOME桌面环境。 2.4 掌握基本shell命令的使用。 3 实验准备 3.1 下载VMware Workstation虚拟机软件(版本不限)。 3.2 准备Linux操作系统的安装源(内核版本和发行版本均不限)。 注:实验准备、实验内容4.1和4.2作为回家作业布置,同学们利用课余时间可在私人计算机上完成。 4 实验要求、步骤及结果 4.1 安装虚拟机软件。 【操作要求】安装VMware Workstation虚拟机软件,并填写以下4.1.1和4.1.2的内容。 4.1.1【VMware Workstation虚拟机版本号】 4.1.2【主要配置参数】 4.2 安装Linux操作系统。 【操作要求】安装Linux操作系统,版本不限。

Linux发行版本: Linux内核版本: 【主要操作步骤:包括分区情况】 1、创建一台虚拟机安装操作系统时客户机操作系统选择Linux 2、修改虚拟机的安装路径。 3、建一个新的虚拟磁盘,磁盘的空间20GB,并且将单个文件存储虚拟磁盘。 4、设置分区完毕,安装虚拟机 4.3 了解Linux操作系统的桌面环境之一GNOME。 【操作要求】查看桌面图标,查看主菜单,查看个人用户主目录等个人使用环境。【操作步骤1】桌面图标

【操作步骤2】主菜单 【操作步骤3】个人用户主目录 【操作步骤4】启动字符终端

操作系统实验一

攀枝花学院实验报告 实验课程:操作系统实验项目:模拟实现进程调度算法实验日期:2010.05.07 系:计算机班级:07级计本2班姓名:朱江学号:200710801086 指导教师:赖国勇成绩: 实验目的: 1、进程调度是处理机管理的核心内容。观察、体会操作系统的进程调度方法,并通过一个简单的进程调度模拟程序的实现,加深对进程控制块、进程队列、进程调度算法,进程切换的理解,并体会和了解各种调度算法的具体实施办法。 2、提高实际动手编程能力,为日后从事软件开发工作打下坚实基础。 实验设备: 1.装有windows2000/xp以上的操作系统。 2.装有LGY_VC++ 6.0集成开发环境。 实验要求: 1、使用模块化设计思想来设计。 2、给出主函数和各个算法函数的流程图。 3、学生可按照自身条件,随意选择采用的算法,(例如:采用冒泡法编写程序,实现短进程优先调度的算法)。 4、进程调度程序模拟程序只对PCB进行相应的调度模拟操作,不需要实际程序。 实验内容及步骤: 一、实验内容 1、设计进程控制块PCB表结构,模拟实现进程调度算法:FIFO,静态优先级调度,时间片轮转调度,短进程优先调度算法,多级反馈队列调度。(实现其中之一个以上)。 2、编写一个进程调度程序模拟程序。模拟程序只对PCB进行相应的调度模拟操作,不需要实际程序。 3、程序经visual c++ 6.0编译后运行,通过文件1.txt和2.txt读入进程名、进程状态、进程运行时间和进程优先级等数据。然后分别选择先进先出调度,静态优先级调度,时间片轮转调度,短进程优先调度算法对进程进行调度,并输出进程的调度模拟操作排序结果。

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

《计算机操作系统》 实验指导书 (适合于计算机科学与技术专业) 湖南工业大学计算机与通信学院 二O一四年十月

前言 计算机操作系统是计算机科学与技术专业的主要专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。计算机操作系统的实验目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握操作系统的基本原理,加深对操作系统基本方法的理解,加深对课堂知识的理解,为学生综合运用所学知识,在Linux环境下调用一些常用的函数编写功能较简单的程序来实现操作系统的基本方法、并在实践应用方面打下一定基础。要求学生在实验指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个实验解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,并且能够进行简单分析和判断;能够熟练使用Linux用户界面;掌握操作系统中进程的概念和控制方法;了解进程的并发,进程之间的通信方式,了解虚拟存储管理的基本思想。同时培养学生进行分析问题、解决问题的能力;培养学生完成实验分析、实验方法、实验操作与测试、实验过程的观察、理解和归纳能力。 为了收到良好的实验效果,编写了这本实验指导书。在指导书中,每一个实验均按照该课程实验大纲的要求编写,力求紧扣理论知识点、突出设计方法、明确设计思路,通过多种形式完成实验任务,最终引导学生有目的、有方向地完成实验任务,得出实验结果。任课教师在实验前对实验任务进行一定的分析和讲解,要求学生按照每一个实验的具体要求提前完成准备工作,如:查找资料、设计程序、完成程序、写出预习报告等,做到有准备地上机。进行实验时,指导教师应检查学生的预习情况,并对调试过程给予积极指导。实验完毕后,学生应根据实验数据及结果,完成实验报告,由学习委员统一收齐后交指导教师审阅评定。 实验成绩考核: 实验成绩占计算机操作系统课程总评成绩的20%。指导教师每次实验对学生进行出勤考核,对实验效果作记录,并及时批改实验报告,综合评定每一次的实验成绩,在学期终了以平均成绩作为该生的实验成绩。有以下情形之一者,实验成绩为不及格: 1.迟到、早退、无故缺勤总共3次及以上者; 2.未按时完成实验达3次及以上者; 3.缺交实验报告2次及以上者。

操作系统实验(一)

操作系统实验 年级2014 级专业 学号 姓名 指导教师 年月日

实验一 Windows任务管理器的使用 一、实验目的 通过在Windows 任务管理器中对程序进程进行响应的管理操作,熟悉操作系统进程管理的概念,学习观察操作系统运行的动态性能. 二、实验内容 启动并进入Windows环境,单击Ctrl + Alt + Del键,或者右键单击任务栏,在快捷菜单中单击“任务管理器”命令,打开“任务管理器”窗口. 1.分别查看每个选项卡的内容,了解相关参数的含义及其当前内容. 2.在“进程”选项卡上单击“查看”菜单,然后单击“选择列”命令.单击要增加显示为列标题的项目,然后单击“确定”.分别了解“进程”选项卡各列的含义及其当前内容. 3.为更改正在运行的程序的优先级,可在“进程”选项卡上右键单击您要更改的程序,指向“设置优先级”,然后单击所需的选项.更改进程的优先级可以使其运行更快或更慢(取决于是提升还是降低了优先级) ,但也可能对其他进程的性能有相反的影响. (查看进程管理器,说明按照名字序号前5个进程的主要用途和功能.) 4、修改windows服务选项,将windows的远程用户修改注册表的服务设置成禁止. :打开控制面板→管理工具→服务→找到"Remote Registry",双击,启动类型设置为禁用. 5、修改windows的磁盘管理并设定配额选项。设定配额的磁盘格式必须是NTFS,如果你的硬盘是FAT32格式;可通过以下命令:convert 盘符:/fs:ntfs 将某一磁盘分区转为NTFS。

6、修改windows启动选项,将其中的前三个自动启动的选项去掉. :开始→运行→输入msconfig,到启动页. 7、修改windows的虚拟内存交换空间. 8、修改windows使得windows启动时,显示操作系统列表时间为5秒,并写出启动文件的具体内容. :右键我的电脑→属性→高级→启动和故障恢复的设置→显示列表时间设为5,→点击编辑→列出具体内容,一般是: [boot loader] timeout=0 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect 9、查看windows本地安全策略,并修改为定期强制修改密码. 写出本地安全策略的审核的内容. :开始→运行→输入gpedit.msc →计算机设置→Windows设置→安全设置→账户策略→密码策略→密码最长存留期设置为需要的天数即可. 10、获得此计算机网卡的网络配置及mac地址. 开始→运行→输入cmd回车→输入ipconfig /all回车即是. 11、在D盘新建一个文件夹,以自己的拼音缩写命名,并利用命令将其映射为I盘,例如为aaa,命令:subst I: d:\aaa.即将c:\aaa映射为I盘. (注:I盘是虚拟盘,不是实际的硬盘)语法 subst [drive1:[drive2:}Path} subst drive1:/d 参数 drive1: 指定要为其指派路径的虚拟驱动器. drive2: 指定包含指定路径的物理驱动器(如果不是当前的驱动器). Path 指定要指派给虚拟驱动器的路径. /d 删除虚拟驱动器. /? 在命令提示符显示帮助. 注释 以下命令在subst 命令中使用的驱动器上无法工作(或不应使用): chkdsk Diskcomp Diskcopy

相关文档