0906进程思维导图

本文详细介绍了操作系统中的进程概念,包括进程的定义、并发性、单道与多道程序设计的区别。进程控制块(PCB)的组成元素如进程ID、状态、资源信息等也进行了阐述。同时,提到了进程的三种基本状态(就绪、执行、阻塞)以及五种状态模型。此外,还讨论了fork函数在进程创建中的作用,以及孤儿进程和僵尸进程的特性。最后,重点讲解了进程间的共享与不同之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程 

进程,是一个抽象的概念,与操作系统原理联系紧密。进程是活跃的程序,占用系统资源。在内存中执行。(程序运行起来,产生一个进程)

并发

在操作系统中,一个时间段中有多个进程都处于已启动运行完毕之间的状态。但任一个时刻点上仍只有一个进程在运行

单道程序设计

所有程序一个一个排队执行。若a阻塞,b只能等待,即使CPU处于空闲状态。而在人机交互时阻塞的出现必然的。所以这种模型在系统资源利用上及其不合理,计算机发展历史尚存不久,大部分便被淘汰了。

多道程序设计

在计算机内存中同时存放几道相互独立的程序,他们在管理程序控制之下,相互穿插的运行。多道程序设计必须有硬件基础作为保证。

微观角度
1.我们CPU 每次只能执行一个程序
2.多个程序轮流循环执行(串行进行)
3.操作系统负责调度进程执行,比如时间片

宏观角度
1.CPU速度很快,Ghz,每秒10亿条以上指令
2.我们人类的眼睛速度时ms级
3.我们看到进程时同时进行的(并发)

进程控制块

1.进程id:系统中每个进程有唯一的id,在c语言中用pid类型表示,其实就是一个非负整数。

2.进程的状态:有初始态、就绪态、运行态、挂起态、停止等状态。

3.进程切换时需要保存和回复一些CPU寄存器。

4.描述虚拟地址空间的信息。

5.描述控制终端的信息。

6.当前工作目录

7.umask掩码

8.文件描述符表:包含很多指向fiel结构体的指针

9.和信号相关的信息

10.会话和进程组

11用户id和组id

12.进程可以使用的字眼上限

进程状态模式

三态

就绪状态:当前进程已分配到除CPU以外的所有必要的资源后,只要能在获得处理机便可立即执行,这是的状态被称为就绪状态。同时处于就绪状态的多个人进程排成就绪队列

执行状态:指进程以获得处理机,其程序正在执行。

阻塞状态:进程因发生某种事件(如I/O请求、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行收到阻塞,古城这种状态为阻塞状态。

五态

创建状态:进程在创建时需要申请一个空白PCB,向其中填写控制个管理进程的信息,完成资源分配,

就绪状态:进程已经准备好了,已分配到所需资源,只要分配到CPU就能够立即运行

执行状态:进程处于就绪状态被调度后,进程进入执行状态

阻塞状态:正在执行的进程由于某些事件而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用

终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行

fork函数

fork函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但是如果初始参数或传入的变量不同,两个进程也可以做不同的事
进程创建后,系统给新创建的子进程分配资源。我们可以通过进程号pid来区分父进程和子进程。父进程返回的是子进程的pid,子进程返回的是0。

进程共享:
父子相同除:全局变量、.data、.text、栈、堆、环境变量、用户id、宿主目录、进程工作目录、信号处理。

父子不同处:1.进程id ,2.fork返回值 ,3.父进程id, 4.进程运行时间 ,5.闹钟(定时器)6.未决信号集

孤儿进程和僵尸进程

孤儿进程:父基进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为init进程,称为init进程领养孤儿进程

僵尸进程:进程终止,父进程尚未收回,子进程残留资源(PCB)存放于内核中,变成僵尸进程。
注意:僵尸进程是不能用kill命令清除掉的。因为kill命令只是用来终止进程的,而僵尸进程已经终止。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值