操作系统习题课及实验 PkL简介 2000年11月1日星期三 礼教213 Mr. Yang ruiduo
操作系统习题课及实验 室简介 2000年11月1日星期三 礼教213 Mr. Yang RuiDuo
PS1。程序、进程、线程 谈谈你对“程序”、“进程”、“线 程”这三个概念的理解,尤其要注意它 们的区别。考虑进程在运行、就绪、阻 塞三种状态间的转换,其中哪些“转换” 是不可能发生的?在哪些情况下,一个 正在运行的进程会停止运行?请对比这 些情况下停止运行的原因
1。程序、进程、线程 谈谈你对“程序” 、 “进程” 、 “线 程”这三个概念的理解,尤其要注意它 们的区别。考虑进程在运行、就绪、阻 塞三种状态间的转换,其中哪些“转换” 是不可能发生的?在哪些情况下,一个 正在运行的进程会停止运行?请对比这 些情况下停止运行的原因
PkS程序与进程之间的区别 进程更能真实地描述并发,而程序不能 进程是由程序和数据两部分组成的 程序是静态的,进程是动态的 进程有生命周期,有诞生有消亡,短暂 的;而程序是相对长久的 个程序可对应多个进程,反之亦然 进程具有创建其他进程的功能,而程序 没有
程序与进程之间的区别 进程更能真实地描述并发,而程序不能 进程是由程序和数据两部分组成的 程序是静态的,进程是动态的 进程有生命周期,有诞生有消亡,短暂 的;而程序是相对长久的 一个程序可对应多个进程,反之亦然 进程具有创建其他进程的功能,而程序 没有
PALS进程和线程 进程是具有独立功能的程序关于某个 数据集合上的一次运行活动,是系统进 行资源分配和调度的独立单位 线程是CPU调度的最小单位
进程和线程 进程是具有独立功能的程序关于某个 数据集合上的一次运行活动,是系统进 行资源分配和调度的独立单位。 线程是CPU调度的最小单位
问题: 进程有无如下状态转换,为什么? (1)等待一运行 (2)就绪一等待 解答: (1)不能:等待一就绪一运行 (2)不能:就绪一运行一等待
问题: 进程有无如下状态转换,为什么? (1)等待—运行 (2)就绪—等待 解答: (1)不能:等待-就绪-运行 (2)不能:就绪-运行-等待
PKLICs会FoRK 采用一种你所熟悉的编程语言,编 写一个过程,来模拟 Fork(创建进 程)原语的功能。(可以自己定义 所需的数据结构)
FORK ◼ 采用一种你所熟悉的编程语言,编 写一个过程,来模拟fork(创建进 程)原语的功能。(可以自己定义 所需的数据结构)
系统调用fork的算法 算法:fork 统级机上下文层; 输入:无 /*虚设上下文层中含有使子进程能识 输出:父进程是子进程的PID 别自己的薮据,并使子进程被调度时 对子进程是0 从这里开始运行; 检查可用的内核资源; f(正在执行的进程是父进程) 取一个空闲的进程表象和唯一的PD{ 号 将子进程的状态设置为“就绪”状态 检察用户没有过多的运行进程 将子进程的状态设为“创建”状态:ctum(子进程的PID)弹*从系统到用 将父进程的进程表象的数据拷贝到子户* 进程表象中; 当前目录的索引节点和改变的根目录ls*正在执行的进程是子进程* (如果可以)的引用数加1 在内存中作父进程上下文的拷贝(u区初始化u区的计时域; 正文、数据、栈); eturn(0)/*到用户* 在子进程的系统级上下文中压入虚设 系
算法:fork 输入:无 输出:父进程是子进程的PID 对子进程是0 { 检查可用的内核资源; 取一个空闲的进程表象和唯一的PID 号; 检察用户没有过多的运行进程; 将子进程的状态设为“创建”状态; 将父进程的进程表象的数据拷贝到子 进程表象中; 当前目录的索引节点和改变的根目录 (如果可以)的引用数加1; 在内存中作父进程上下文的拷贝(u区 、正文、数据、栈); 在子进程的系统级上下文中压入虚设 系 统级机上下文层; /*虚设上下文层中含有使子进程能识 别自己的数据,并使子进程被调度时 从这里开始运行; */ if(正在执行的进程是父进程) { 将子进程的状态设置为“就绪”状态 ; return(子进程的PID);/*从系统到用 户*/ } else/*正在执行的进程是子进程*/ { 初始化u区的计时域; return(0);/*到用户*/ } } 系统调用fork的算法