操作系统实验报告 (4)
- 格式:pdf
- 大小:183.70 KB
- 文档页数:6


中南大学
计算机操作系统
实验报告 第 2 页 共 17 页
.........................
.........................
.........................
.........................
....................
....................
................
............................
........................ 第 3 页 共 17 页
1、增强学生对计算机操作系统基本原理、基本理论、基本算法的理解;
2、提高和培养学生的动手能力。
1、每人至少选作 1 题,多做不限;
2、每人单独完成,可以讨论,但每人的设计内容不得彻底相同,抄袭或者有
2 人/多人设计彻底一样者,不能通过;
3、设计完成后,应上交课程设计文档,文档格式应是学校课程设计的标准
格式,所有学生的封面大小、格式也必须一样;
4、同时上交设计的软盘(或者以班刻录光盘)。
调度算法的摹拟:摹拟各种调度算法,并进行调度性能分析。
摹拟了一个作业调度算法,其中用到了先来先服务算法(FCFS)、短作业优
先算法(SJF)、最高响应比优先算法(HRN)三种算法。
如下,分别为三种算法的程序流程图。
第 4 页 共 17 页 第 5 页 共 17 页
图 1 - 开始界面
图 2 – 输入作业的信息(名字、提交时间、运行时间)
图 3 – 选择算法(FCFS 、SJF、HRN)
图 4、5 –选择 FCFS 算法后输出结果
第 6 页 共 17 页
图 6、7 –选择 SJF 算法后输出结果
第 7 页 共 17 页
图 8、9 –选择 HRN 算法后输出结果
实验题目:
进程管理及进程通信
实验环境:
虚拟机Linux操作系统
实验目的:
1.利用Linux提供的系统调用设计程序,加深对进程概念的理解。
2.体会系统进程调度的方法和效果。
3.了解进程之间的通信方式以及各种通信方式的使用。
实验内容: 例程1:
利用fork()创建子进程
#include<>
#include<>
#include<>
main()
{
int i;
if (fork())
i=wait(0);
/*父进程执行的程序段*/
/* 等待子进程结束*/
printf("It is parent process.\n");
printf("The child process,ID number %d, is finished.\n",i);
}
else{
printf("It is child process.\n");
sleep(10);
/*子进程执行的程序段*/
exit(1);
/*向父进程发出结束信号*/
}
}
运行结果:
思考:子进程是如何产生的? 又是如何结束的?子进程被创建后它的运行环境是怎
样建立的?
答:子进程是通过函数fork()创建的,通过exit()函数自我结束的,子进程被创建后核心将为其分配一个进程表项和进程标识符,检查同时运行的进程数目,并且拷贝进程表项的数据,由子进程继承父进程的所有文件。
例程2:
循环调用fork()创建多个子进程
#include<>
#include<>
#include<>
main()
{ int i,j;
printf(“My pid is %d, my father’s pid is %d\n”,getpid() ,getppid());
for(i=0; i<3; i++)
if(fork()==0)
printf(“%d pid=%d ppid=%d\n”, i,getpid(),getppid());
操作系统进程控制实验报告
一、实验目的
操作系统进程控制是操作系统中的重要概念和核心功能之一。本次实验的目的在于深入理解操作系统中进程的概念、状态及其转换,掌握进程创建、终止、阻塞和唤醒等操作的实现原理和方法,通过实际编程和调试,观察进程的行为和特性,从而提高对操作系统原理的理解和应用能力。
二、实验环境
本次实验使用的操作系统为 Windows 10,编程语言为 C++,开发工具为 Visual Studio 2019。
三、实验原理
(一)进程的概念
进程是操作系统中进行资源分配和调度的基本单位,它包含了程序代码、数据、堆栈等资源。进程具有独立性、动态性和并发性等特点。
(二)进程的状态
进程的状态通常包括就绪态、运行态和阻塞态。就绪态表示进程已具备运行条件,等待被调度;运行态表示进程正在 CPU 上执行;阻塞态表示进程因等待某个事件而暂停执行。 (三)进程控制的基本操作
1、 进程创建:通过系统调用创建新的进程,为其分配资源并初始化。
2、 进程终止:当进程完成任务或出现异常时,结束其执行并回收资源。
3、 进程阻塞:进程在等待某个事件时,主动进入阻塞态。
4、 进程唤醒:当等待的事件发生时,将阻塞的进程唤醒,使其进入就绪态。
四、实验内容与步骤
(一)进程创建
1、 编写 C++程序,使用系统提供的函数创建新的进程。
2、 在新进程中执行特定的任务,例如打印输出信息。
```cpp
include <windowsh>
include <iostream>
int main() {
STARTUPINFO si;
PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si));
sicb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
// 创建新进程
if (!CreateProcess(NULL, // 应用程序名称
郑 州 轻 工 业 学 院
实践报告
姓 名:
院 (系):
专 业:
班 级:
学 号:
指导教师:
成 绩:
时间: 2014 年 2 月至 2014 年 5 月
目 录
一、实践目的 .............................................. 错误!未定义书签。
二、实践内容及步骤 .................................. 错误!未定义书签。
三、实践效果分析 ...................................... 错误!未定义书签。
四、小节(结合实际,谈谈认识) ........... 错误!未定义书签。
3
一、 实践目的
为了增强我们队脚本语言的认识和了解。熟练掌握脚本语言的特点和应用。熟练掌握Dreamweaver编写代码的技巧,提高学生的动手能力。
二、 实践内容及步骤
1、 内容:利用Dreamweaver平台编写js代码,制作一个简单的用户注册表单页。
2、 步骤:根据需要设计表单,
三、 实验结果分析
1、 表单图例
2、 页面代码 4
外链式js,调用函数
邮箱js代码:输入邮箱时自动填充邮箱后缀,(如@)
地址js代码:
日期js代码:点击日期栏 ,会自动弹出日历表
3、
4、
5、
6、
7、
8、
9、 账户名称:
10、
style="height: 25">
11、
12、
13、
14、 用户密码:
15、