什么是进程??????

大纲

进程:

故事:

城里人有城里人的规矩,城中有个专门管辖你们的城管(操作系统),人家让你休息就休息,让你工作就工作,毕竟摊位不多,每个人都要占这个摊位来工作,城里要工作的人多着去了。

所以城管为了公平起见,它使用一种策略(调度)方式,给每个人一个固定的工作时间(时间片),时间到了就会通知你去休息而换另外一个人上场工作。

另外,在休息时候你也不能偷懒,要记住工作到哪了,不然下次到你工作了,你忘记工作到哪了,那还怎么继续?

有的人,可能还进入了县城(线程)工作,这里相对轻松一些,在休息的时候,要记住的东西相对较少,而且还能共享城里的资源。

例如我们的windows系统

程序和进程的联系

进程是动态的,程序是静态的,程序是有序代码的集合;进程是程序的执行,进程有核心态 /用户态

中断保存 刚才的进程信息,切换下一个进程

进程的特点(动态,并行并发,独立,制约)

首先,并发和并行

动态性: 可动态创建结束进程

独立性:每个进程都不收影响

制约性:因访问共享进程同步产生制约

进程控制块

控制信息

pcb的组织方式:

链表的删除和插入效率大

索引代价较高

进程的生命周期管理

进程创建 :首先操作系统要创建第一个进程,此进程在创建其他新的进程

进程变成阻塞态是由自身来发起的

02 终止进程

进程可以有 3 种终止方式:正常结束、异常结束以及外界干预(信号 kill 掉)。

当子进程被终止时,其在父进程处继承的资源应当还给父进程。而当父进程被终止时,该父进程的子进程就变为孤儿进程,会被 1 号进程收养,并由 1 号进程对它们完成状态收集工作。

终止进程的过程如下:

  • 查找需要终止的进程的 PCB;

  • 如果处于执行状态,则立即终止该进程的执行,然后将 CPU 资源分配给其他进程;

  • 如果其还有子进程,则应将该进程的子进程交给 1 号进程接管;

  • 将该进程所拥有的全部资源都归还给操作系统;

  • 将其从 PCB 所在队列中删除;

03 阻塞进程

当进程需要等待某一事件完成时,它可以调用阻塞语句把自己阻塞等待。而一旦被阻塞等待,它只能由另一个进程唤醒。

阻塞进程的过程如下:

  • 找到将要被阻塞进程标识号对应的 PCB;

  • 如果该进程为运行状态,则保护其现场,将其状态转为阻塞状态,停止运行;

  • 将该 PCB 插入到阻塞队列中去;

04 唤醒进程

进程由「运行」转变为「阻塞」状态是由于进程必须等待某一事件的完成,所以处于阻塞状态的进程是绝对不可能叫醒自己的。

如果某进程正在等待 I/O 事件,需由别的进程发消息给它,则只有当该进程所期待的事件出现时,才由发现者进程用唤醒语句叫醒它。

唤醒进程的过程如下:

  • 在该事件的阻塞队列中找到相应进程的 PCB;

  • 将其从阻塞队列中移出,并置其状态为就绪状态;

  • 把该 PCB 插入到就绪队列中,等待调度程序调度;

进程的阻塞和唤醒是一对功能相反的语句,如果某个进程调用了阻塞语句,则必有一个与之对应的唤醒语句。

进程挂起:

pcb有就绪对列,也有阻塞队列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值