您现在正在浏览:首页 > 教案 > 计算机 > 操作系统课程设计——进程管理

免费下载操作系统课程设计——进程管理

  • 资源类别:教案
  • 资源分类:计算机
  • 适用专业:操作系统
  • 适用年级:本科
  • 上传用户:忆宣逸
  • 文件格式:word
  • 文件大小:52.60KB
  • 上传时间:2010-1-26 21:56:54
  • 下载次数:1
  • 浏览次数:357

安全检测:瑞星:安全 诺顿:安全 卡巴:安全

资料简介
操作系统课程设计——进程管理

以下是课程设计题目:

实验一 进程管理

一、实验目的
1.了解进程与程序的区别,加深对进程概念的理解
2.掌握进程并发执行的原理,及其所引起的同步、互斥问题的方法
3.利用Linux系统提供的进程通信原语,学会解决进程同步、互斥问题的方法
4.Linux 系统中进程通信的基本原理。

二、实验预备内容
1.阅读 Linux 的 sched.h 源码文件 , 加深对进程管理概念的理解。
2.阅读 Linux 的 fork.c 源码文件 , 分析进程的创建过程。
3.阅读 Linux 系统的 msg.c 、 sem.c 和 shm.c 等源码文件 , 熟悉 Linux 的三种通信机制。

三、实验内容
1) 进程的创建
编写一段程序 , 使用系统调用 fork( ) 创建两个子进程。当此程序运行时 , 在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符 : 父进程显示字符“a”;子进程分别显示字符“b”和字符“c” 。试观察记录屏幕上的显示结果 , 并分析原因。

2) 进程的控制
修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话 , 在观察程序执行时屏幕上出现的现象,并分析原因。
如果在程序中使用系统调用lockf( ) 来给每一个进程加锁 , 可以实现进程之间的互斥 ,观察并分析出现的现象。

3) 程序编写
①编制一段程序 , 使其实现进程的软中断通信。
要求 : 使用系统调用 fork( ) 创建两个子进程 , 再用系统调用 signal ( ) 让父进程捕捉键盘上来的中断信号 (即按 DEL 键 ); 当捕捉到中断信号后 , 父进程用系统调用 Kill( ) 向两个子进程发出信号 , 子进程捕捉到信号后分别输出下列信息后终止 :
Child Processll is Killed by Parent !
Child Process12 is Killed by Parent !

父进程等待两个子进程终止后 , 输出如下的信息后终止 :

Parent Process is Killed !

②在上面的程序中增加语句 signal (SUINT,SIG--IGN) 和 signal (SIGQUIT,SIG-IGN), 观察执行结果 , 并分析原因。

4) 进程的管道通信
编制一段程序 , 实现进程的管道通信。
使用系统调用 pipe() 建立一条管道线 ; 两个子进程 Pl 和 P2 分别向管道各写一句话 :

Child 1 is sending a message !
Child 2 is sending a message !

而父进程则从管道中读出来自于两个子进程的信息 , 显示在屏幕上。要求父进程先接收子进程 Pl 发来的消息 , 然后再接收子进程 P2 发来的消息。

四、思考
(1) 系统是怎样创建流程的 ?
(2) 可执行文件加载时进行了哪些处理 ?
(3)当首次调用新创建进程时 , 其入口在哪里 ?
(4)进程通信有什么特点 ?

以下是程序的一部分,包括具体实例讲解,一个word文档和8个c程序文件:
实验一范例
1) 进程的创建
编写一段程序 , 使用系统调用 fork( ) 创建两个子进程。当此程序运行时 , 在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符 : 父进程显示字符“a”;子进程分别显示字符“b”和字符“c” 。试观察记录屏幕上的显示结果 , 并分析原因。

#include ﹤unistd.h﹥ /*fork01.c */
#include ﹤stdio.h﹥
int main()
{
int p1,p2;
while ((p1=fork())= =-1);
if (p1= =0) putchar(’b’);
else
{
while ((p2=fork())= =-1);
if(p2= =0) putchar(’c’);
else putchar(’a’);
}
return 0;
}

注:fork()函数:
fork(): 创建一个新进程。
int fork()
其中返回 int 取值意义如下 :
0: 创建子进程 , 从子进程返回的 id 值
大于 0: 从父进程返回的子进程 id 值
-1: 创建失败
资料文件预览
共2文件夹,9个文件,文件总大小:166.71KB,压缩后大小:52.60KB
  • 操作系统课程设计——进程管理
    • 源代码
      • C代码文件fork.c  [28.04KB]
      • C代码文件fork01.c  [234.00B]
      • C代码文件fork2.c  [388.00B]
      • C代码文件mail.c  [1.02KB]
      • C代码文件pipe.c  [13.59KB]
      • C代码文件pipe01.c  [812.00B]
      • C代码文件sched.c  [74.12KB]
      • C代码文件suo1.c  [559.00B]
    • Microsoft Word文档进程管理代码讲解.doc  [48.00KB]
下载地址
资料评论
注意事项
下载FAQ:
Q: 为什么我下载的文件打不开?
A: 本站所有资源如无特殊说明,解压密码都是www.xuehai.net,如果无法解压,请下载最新的WinRAR软件。
Q: 我的学海币不多了,如何获取学海币?
A: 上传优质资源可以获取学海币,详细见学海币规则
Q: 为什么我下载不了,但学海币却被扣了?
A: 由于下载人数众多,下载服务器做了并发的限制。请稍后再试,48小时内多次下载不会重复扣学海币。
下载本文件意味着您已经同意遵守以下协议
1. 文件的所有权益归上传用户所有。
2. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
3. 学海网仅提供交流平台,并不能对任何下载内容负责。
4. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
5. 本站不保证提供的下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
返回顶部