进程的管理之进程创建笔记

进程的控制:

   操作系统不直接控制进程代码,而是通过控制进程控制块(pcb)来控制进程。进程控制块(pcb)是一个包含进程的所有信息的数据结构,里面包含了进程所需内存的大小,在内存中的基址,执行需要的时间中断时的现场信息等。   

操作系统专门有一组进程控制块用来控制进程。当创建一个进程时,就给进程分配一个空闲的进程控制块,并初始化进程控制块的信息。

进程的创建:

     当一个进程需要被装入内存的时候,操作系统会先从进程控制块队列中查找一个空闲的PCB,然后初始化PCB的信息,再将进程从外存调入内存。具体的操作过程为:

1:系统调用create()原语初始化一个进程并将pcb放入就绪队列中。等到时间片到达,从就绪队列中进入执行阶段,

2:此时若执行完毕则操作系统调用destory()原语操作释放一个进程,回收pcb进程控制块。

3:若执行过程等待事件的出现,则操作系统调用block()原语操作将进程控制块放入动态阻塞队列,等待事件的出现。

4:若事件出现则调用wakeup()原语将控制块再次放入就绪队列等待执行。在动态阻塞过程中如果内存空间不足,则需要将动态阻塞队列的中进程放入外存中,这时操作系统执行suspend()原语将进程挂起,Pcb进入静态阻塞队列状态。如果在动态阻塞过程中时间出现则调用active()原理唤醒进程加入到就绪队列。

5:在静态阻塞过程中等待事件出现,则调用active()原语将pcb放入动态阻塞队列,然后再进入就绪队列。注意是经过两个过程,而不是直接进入就绪队列中。因为此时操作系统还要处理一些过程,所以不能直接加入就绪队列执行。

***********************以上是进程在内存中的六种状态的过程。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1.目的: 自行编制模拟程序,通过形象化的状态显示,深入理解进程的概念、进程之间的状态转换及其所带来的PCB内容 、组织的变化,理解进程与其PCB间的一一对应关系。 2. 内容及要求: 1) 设计并实现一个模拟进程状态转换及其相应PCB内容、组织结构变化的程序。 2) 独立编写、调试程序。进程的数目、进程的状态模型(三状态、五状态、七状态或其它)以及PCB的组织形式可自行选择。 3) 合理设计与进程PCB相对应的数据结构。PCB的内容要涵盖进程的基本信息、控制信息、资源需求及现场信息。 4) 设计出可视性较好的界面,应能反映出进程状态的变化引起的对应PCB内容、组织结构的变化。 5) 代码书写要规范,要适当地加入注释。 6) 认真进行预习,完成预习报告。 7) 实验完成后,要认真总结,完成实验报告。 3.使用的数据结构及说明: 在本实验中,主要用到的数据结构是PCB的结构,其中PCB的数据结构如下: struct PCB { int P_Id; //PCB的ID号 char P_Name[10]; //PCB的名称 char P_State[10]; //PCB状态 int P_Runtime; //PCB的所需要的运行时间 int P_Requiry; //PCB所需要的资源要求 struct PCB * next ; //PCB块的下一个指针 } ; 其中,P_Id,和P_Name用来标示一个进程,而P_State用来标示进程的五种状态:Create_state,Ready_state,Block_state,Run_state,Exit_state。P_Runtime标示要完成一个进程所需要的时间。P_Requiry标示一个进程的执行所需要的其他条件,当其他的条件满足,则P_Requiry置1,否则置0。Struct PCB * next 用来指向同一队列中的下一个PCB块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒徒词客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值