操作系统(进程)相关概念

1.进程

进程是操作系统对一个运行程序的逻辑抽象,也是操作系统分配系统资源的最小逻辑单元。

1.1 多道程序系统

所谓多道程序设计系统是指CPU由一个进程快速切换至另一个进程,使得每个进程各运行几十或几百毫秒,在某一个时刻CPU只能运行某一个进程,在1秒内操作系统可能运行着多个程序,这样就产生了一个错觉,认为操作系统是同时运行多个程序,所谓的伪并行就是这个情形。

1.2 并行与并发

并行:多核心处理,多任务在同一时刻由多个CPU核心处理,执行的任务达到并行的效果。
并发:在单处理器领域,同一个时刻只有1个任务执行,由CPU调度策略控制,任务交替执行。

1.3 进程的创建和终止

1.3.1 进程创建

在UNIX系统中,可以通过fork函数创建新的进程,这个系统调用会创建一个与调用进程相同的副本,调用fork之后这两个进程拥有相同的内存映像、同样的描述符、同样的打开文件,之后子进程执行execve命令开始执行和修改内存映像并运行一个新的程序。

1.3.2 写时复制

进程在创建之后,父子进程各自拥有专属自己的虚拟地址空间,,如果其中某个进程修改了内存空间的内容,这个修改对另一个进程是不可见的。在UNIX系统中,子进程的初始化地址空间是父进程的副本,父子进程通过写时复制技术进行写隔离,已达有一个进程尝试修改内存地址的内容,就会首先复制出来一份空间,然后修改写入。

1.3.3 进程终止

进程任务也有终止的一刻,那么进程终止有以下条件引起:

              - 正常退出
              - 出错退出
              - 严重错误
              - 被动杀死

在UNIX系统中,通过系统调用exit函数,进程进入退出状态。

1.3.4 进程回收和僵死进程

当一个进程由于某种原因终止,。操作系统并不是立即把它回收清除,而是将进程标记为终止状态,直到它被父进程回收,当父进程回收已终止的子进程时,内核将子进程的退出状态传递给父进程,父进程回收退出的子进程;一个标记为终止的进程还未被父进程回收的进程称之为僵死进程

2.进程状态

2.1 五状态模型

在这里插入图片描述

2.2 七状态模型

在这里插入图片描述

3.控制结构

进程可将其视为一个资源容器,该容器聚集了相关资源,包括地址空间,线程,打开的文件,保护许可等,进程的控制结构被称为一个叫进程控制块来描述,简称PCB
在这里插入图片描述

3.1 链表维护

操作系统将不同进程状态的进程分别维护一个链表进行进程的维护:
在这里插入图片描述

3.2 索引表维护

与之链表相反的策略是维护一个索引表,将不同状态的进程维护成一个索引表进行维护:
在这里插入图片描述

3.3 进程地址空间

进程的内存逻辑包括如下内容:

     - 只读代码段
     - 读写数据区
     - 运行时堆空间
     - 共享内存映射区域
     - 用户栈空间
     - 内核虚拟空间(代码、数据、堆栈等)(用户空间不可见)

4.上下文切换

CPU同一时刻只能运行一个程序,当一个程序的CPU时间片执行完毕,CPU需要调度执行另一个进程,而此时CPU需要做进程的切换,操作系统需要做上下文切换的各种工作:
1.保存处理器上下文环境:将CPU程序计数器和寄存器的值保存到当前进程的私有堆栈里
2.更新当前进程的PCB(包括状态更变)
3.将当前进程移到就绪队列或者阻塞队列
4.根据调度算法,选择就绪队列中一个合适的新进程,将其更改为运行态
5.更新内存管理的数据结构
6.新进程内对堆栈所保存的上下文信息载入到CPU的寄存器和程序计数器,占有CPU在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Minor王智

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

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

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

打赏作者

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

抵扣说明:

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

余额充值