进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。
1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。
2、系统资源(r1…rw),共有w类,每类数目为r1…rw。随 机产生n进程Pi(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。
3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。
4、编制进程调度算法:时间片轮转调度算法
本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。
…… …… 余下全文
一、实验目的
本实验要求学生编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁的发生。
二、实验题目
第一题:用银行家算法实现资源分配。要求:
(1) 设计一个3个并发进程共享10个同类资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。
(2) 设计用银行家算法和随机分配算法,实现资源分配的两个资源分配程序,应具有显示或打印各进程依次要求申请的资源数以及依次分配资源的情况。
(3) 确定一组各进程依次申请资源数的序列,在相同的情况下分别运行上述两种资源分配程序,观察运行结果。
第二题:用按序分配策略实现资源分配。要求:
(1) 设计一个3个进程共享10个资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。
(2) 设计用按序分配算法实现资源分配的资源分配程序,应具有显示或打印各进程依次要求申请的资源号以及依次分配资源地情况。
(3) 确定两组各进程依次要求申请的资源号,要求其中的一组中各进程按序地申请资源,另一组中各进程申请资源不受序号限制,分别运行上述设计的资源分配程序,观察运行结果。
…… …… 余下全文
实验一 进程管理
1.目的和要求
通过实验理解进程的概念,进程的组成(PCB结构),进程的并发执行和操作系统进行进程管理的相关原语(主要是进程的创建、执行、撤消)。
2.实验内容
用C语言编程模拟进程管理,至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。
3.实验环境
Windows操作系统、VC++6.0
C语言
4.实验提示
PCB结构通常包括以下信息:进程名,进程优先数,轮转时间片,进程所占用的CPU时间,进程的状态,当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删。
主体程序
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
struct jincheng_type
{
int pid;
int youxian;
int daxiao;
int msg;
int live;
};
struct jincheng_type neicun[20],waicun[20];
…… …… 余下全文
班级:2009211311
学号:
姓名: schnee
目 录
1. 实验目的... 3
2. 实验预备内容... 3
3. 环境说明... 3
4. 实验内容... 4
4.1. 进程的创建... 4
程序1
4.1.1题目要求:... 4
4.1.2程序设计说明:... 4
4.1.3源代码:... 4
4.1.4运行结果:... 5
4.1.5分析:... 5
4.2. 进程的控制... 6
程序2(a)
4.2.1题目要求:... 6
4.2.2程序设计说明:... 6
4.2.3源代码:... 6
4.2.4运行结果:... 7
4.2.5分析:... 7
…… …… 余下全文
…… …… 余下全文
软件学院计算机课程
实 验 报 告 册
课程名称 计算机操作系统
实验学期 20## 年至 20## 年 第 2 学期
学生所在院(系) 软件学院
年级 11软件 专业班级 软工(1) 班
学生姓名 朱水云 学号 1115114034
…… …… 余下全文
计算机科学与技术系
实 验 报 告
课程名称:___操作系统原理与Linux___
实验名称:___ 进程管理 _______
班 级:____计算机08-2
学 号: 08034050217
姓 名: XXXX
20##年 03 月 23日
实验二 进程管理
一. 实验目的:
…… …… 余下全文
进程管理实验报告
一、进程与线程
1.实验目的:
1.通过本实验学习Linux中创建进程的方法。
2.学习系统调用fork的使用方法。
3.学习系统调用exec族调用的使用方法。
2.实验准备
1. 进程的创建
创建一个进程的系统调用很简单,只要调用fork函数就可以了。
#include<unistd.h>
pid_t fork();
当一个进程调用了fork以后,系统会创建一个子进程,这个子进程和父进程是不同的地方只有它的进程ID和父进程ID,其他的都一样,就像父进程克隆(clone)自己一样,当然创建两个一模一样的进程是没有意义的,为了区分父进程和子进程,我们必须跟踪fork调用返回值。当fork调用失败的时候(内存不足或者是用户的最大进程数已到)fork返回—1,否则fork的返回值有重要的作用。对于父进程fork返回子进程ID,而对于fork子进程返回0,我们就是根据这个返回值来区分父子进程的。
2.关于fork的说明
使用该函数时,该函数被调用一次,但返回两次,两次返回的区别是子进程的返回值是0,而父进程的返回值则是新子进程的进程ID。
…… …… 余下全文