【哈工大李治军操作系统听课笔记】L9. 多进程图像

本文介绍了操作系统如何通过CPU管理和多进程视图来提高效率,从进程的创建到结束,涉及PCB管理、进程状态、内存问题以及进程通信。在多进程环境中,操作系统使用队列管理进程,并通过调度实现进程切换。此外,还探讨了进程间通信的关键概念——临界区。整个操作系统运行过程中,shell进程持续创建新进程,直到系统关机时所有进程被终止。
摘要由CSDN通过智能技术生成

1.CPU管理和多进程视图

有了进程的概念后,就可以用这个概念对CPU管理进行重新描述:CPU的工作原理就是取出指令,执行指令的过程。而执行起来的程序叫做进程。因此使用CPU和启动进程本质上是等价的。

为了提高CPU的工作效率,操作系统会启动多个进程,并在多个进程中来回切换从而提高CPU的利用率,实现高效管理。
在这里插入图片描述
多进程视图是操作系统的核心视图,操作系统从开机启动开始到最后关机的全部运行过程都是围绕着这个视图展开的。

具体来说,在操作系统启动的main()函数最后,进程0会被创建出来,然后通过执行fork()系统调用创建出1号进程,并且让1号进程执行shell程序(相当于Windows中的桌面);接下来shell会调用fork()来创建一个进程去执行用户输入命令后对应的程序。用户可以通过fork()创建出新进程来执行相应的任务。上层应用所做的每一件事,如编译一个.c文件,浏览一个网页,发一封邮件等等都要在操作系统中创建一个进程来完成。

一个进程会在执行完毕后调用exit()来退出自己,但shell不会调用exit()退出自己,除非关机。因此shell进程会一直执行,不断创建新的进程。在系统最终关机时,将会将所有的进程都杀死。这整个过程就是操作系统的多进程视图。
在这里插入图片描述
2. 多进程引起的基本问题

2.1多进程的组织和状态

操作系统通过管理进程相应的PCB来管理进程。所以要想组织多个进程就是用合适的数据结构来管理这些PCB。实际上,操作系统使用 队列 这种方式来管理PCB。
在这里插入图片描述
我们都知道,进程的三个基本状态分别是运行态,就绪态和阻塞态。因此也相应产生了三个PCB队列:运行队列,就绪队列和阻塞队列。

对于一个单核CPU(同一时间只有一个处于运行状态的进程)其PCB队列基本如下:
在这里插入图片描述
2.2多个进程的切换和调度

进程调度是一个很深刻的话题,我们会在之后的课程中详细描述。

2.3多进程导致的内存问题

多个进程同时存在在内存中,如果一个进程需要读取的数据地址里存放着另一个进程的代码数据,冒然读取就会造成错误。因此就产生了虚拟内存的概念,这个会在以后的课程中详细展开。

2.4 进程间的通信与合作

有些时候进程之间需要相互配合共同完成一些事情。

想一想打印工作过程
• 应用程序提交打印任务
• 打印任务被放进打印队列
• 打印进程从队列中取出任务
• 打印进程控制打印机打印
在这里插入图片描述在这里插入图片描述
这些就是临界区的概念,详细论述会在之后的课程中给出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值