《操作系统实验》进程管理(1)
云南大学信息学院
张彬彬
2012年9月26日
相关概念
进程
强调程序的执行过程
是分配和管理资源的基本单位
进程具有独立性和异步性
各进程的执行是相互独立的
各进程的执行速度是异步的
任务
在Linux上编写第一个C程序(学会使用vim编写源代码、gcc进行编译)
完成“进程管理”的两个小实验
编写一个C程序并编译运行
操作说明
使用vim编辑一个文件,(vim ),文件内容如下
编译该文件
运行
进程管理实验1-1
任务描述
编写一段程序,使用系统调用fork()创建两个子进程。
父进程显示字符‘a’,子进程分别显示字符‘b’和‘c’
观察屏幕上的显示结果,并分析原因
使用fork系统调用
功能
创建一个新进程,“When a process forks, it creates a copy of itself.”
函数原型
pid_t fork(void)
执行效果
若进程创建失败,则返回-1
若进程创建成功,则新进程是原进程的一个子进程,后续的代码段由子进程和父进程共享,由fork的返回值区分当前执行的是子进程还是父进程
返回值== 0,则当前执行的是子进程
返回值> 0,则当前执行的是父进程,该返回值是子进程的PID
子进程创建成功后,将具有一个独立的地址空间,其内存页面的内容以Copy-on-Write的方式与父进程实现共享
父进程和子进程共享一个程序段,但各自拥有自己的数据
操作说明(参见教材p86)
使用vim编辑一个文件,(vim ),文件内容如下
编译该文件
运行
分析
创建一个子进程
创建另一个子进程
这里是子进程!
这里是子进程!
这里是父进程!
这里是父进程!
分析
‘b’
‘a’
‘c’
父进程
子进程1
子进程2
输出:bca
分析
‘b’
‘a’
‘c’
父进程
子进程1
子进程2
输出:bac
计算机操作系统实验第二讲 来自淘豆网www.taodocs.com转载请标明出处.