大连理工大学大学计算机实验指导,大连理工大学操作系统实验报告...doc

文档介绍:

大连理工大学

本科实验报告

课程名称: 操作系统实验

学院(系): 计算机科学与技术学院

专业: 计算机科学与技术

班级: 电计

学号:

学生姓名:

年月日

实验项目列表

序号

实验项目名称

学时

成绩

指导教师

预****操作

结果

1

进程管理

2

存储管理

3

磁盘移臂调度

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

总计

学分:

大连理工大学实验报告

学院(系):计算机科学与技术学院专业: 计算机科学与技术班级:电计1301

姓名: 学号: 组: ___

实验时间: 2016.6.3 实验室: 综412 实验台:

指导教师签字: 成绩:

进程管理实验

实验目的

加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练****Linux系统中进程创建与控制有关的系统调用的编程和调试技术。

实验原理和内容

原理:(1)fork成功创建子进程后将返回子进程的进程号,不成功会返回-1

(2)exec 系统调用有一组6个函数,其中示例实验中引用了 execve 系统调用语法:

#include

int execve(const char *path, const char *argv[], const char * envp[]);

path 要装入的新的执行文件的绝对路径名字符串.

argv[] 要传递给新执行程序的完整的命令参数列表(可以为空).

envp[] 要传递给新执行程序的完整的环境变量参数列表(可以为空). Exec执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。exec调用失败,它会返回-1。

内容:

每个进程都执行自己独立的程序,打印自己的pid,每个父进程打印其子进程的pid;

子1

子2

子1

子2

每个进程都执行自己独立的程序,打印自己的pid,父进程打印其子进程的pid;

编写一个命令处理程序,能处理max(m,n), min(m,n)和 average(m,n,l)这几个命令。(使用exec函数族)

三实验代码及结果

(1)

#include

#include

int main()

{

if(fork() == 0)

{

printf("子进程的pid为:%d.\n",getpid());

if(fork() == 0)

{

printf("二级子进程的pid为:%d.\n",getpid());

}

}

else

{

printf("父进程的pid为%d.\n",getpid());

}

return 0;

}

运行结果:

(2)

#include

#include

int main()

{

if(fork() == 0)

{

printf("子进程的pid为%d.\n",getpid());

}

else

{

if(fork() == 0)

{

printf("子进程2的pid %d.\n",getpid());

}

else

{

printf("父进程的pid为%d.\n\n",getpid());

}

}

return 0;

}

(3)

调用函数为:

include

#include

#include

#define N 10

int main()

{

int i;

char cmdname[N];

printf("$ ");

scanf("%s",cmdname);

if(strcmp(cmdname,"min")==0)

{

execl("/home/lenovo/min","min",NULL);

}

else if(strcmp(cmdname,"max")==0)

{

execl("/home/lenovo/max","max",NULL);

}

else if(strcmp(cmdname,"ave")==0)

{

execl("/home/lenovo/average","ave",NULL);

}

else

printf

内容来自淘豆网www.taodocs.com转载请标明出处.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
$$完整代码+22页实验报告$$。#大车埋土#进程调度算法包括先来先服务调度算法 FCFS、最短作业时间优先 SJF(抢占式 和非抢占式)、最高响应比调度 HRN 算法 4 种。(每个人必须做非抢占式 SJF, 然后在后面的三种中任选一种,即每个人必须做 2 种调度算法的模拟。) [2]. 衡量算法性能的参数 计算进程的平均周转时间和平均带权周转时间。 3. 实验内容 (1)编程实现本实验的程序,要求: [1]. 建立进程的进程控制块,进程控制块至少包括: a) 进程名称; b) 进程需要执行时间; c) 进入就绪队列时间; d) 进程执行开始时间 e) 进程执行结束时间 [2]. 编程实现调度算法。 [3]. 进程及相关信息的输入。这些信息可以直接从键盘上输入,也可以从文件读 取。 [4]. 时间片与时间流逝的模拟。本实验需要对算法的执行计时,程序应该提供计 算时间的方法。一种最简单的方法是使用键盘,比如每敲一次空格代表一个 2 时间片的流逝。另一种方法是使用系统时钟。 [5]. 一组进程序列执行完毕,打印出结果信息。程序需要计算出每个进程的开始 执行时间、结束时间、周转时间和带权周转时间,并为整个进程序列计算平 均周转时间和平均带权周转时间。程序将计算结果按一定的格式显示在计算 机屏幕上或输出到文件中。打印出进程调度顺序图。 [6]. 实现数据在磁盘文件上的存取功能。 (2)对下列就绪进程序列分别使用上面的几种算法进行调度,计算每种算 法下的平均周转时间和平均带权周转时间。 进程号 到达时间 要求执行时间 0 0 1 1 1 35 2 2 10 3 3 5 4 6 9 5 7 21 6 9 35 7 11 23 8 12 42 9 13 1 10 14 7 11 20 5 12 23 3 13 24 22 14 25 31 15 26 1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值