操作系统 —— 进程

一、操作系统(OS)

单CPU单核计算机:微观视角下,同一时刻下,一次只能执行一条指令

         开机  指令1 指令2 指令3 指令4…指令n 指令n+1 指令n+2   关机

  操作系统是系统最基本最核心的软件,属于系统软件。控制和管理整个计算机的硬件和软件资源,合理的组织、调度计算机的工作与资源的分配。

地位视角:
在这里插入图片描述
  

二、进程(process)

(一)程序

程序:一套数据处理的步骤。 程序是 静态 的,一般表现为一个或一组文件。程序 = 指令 + 数据

(二)什么是进程?

用户视角:

  • 进程是程序的一次执行过程
  • 一个程序可以多次执行(表现为多个进程),甚至可以”同时“进行(多个进程同时存在)
  • 进程是程序在”运行阶段“的视角主体

OS实现视角:

  • 进程是OS进行资源分配的基本单位
  • 进程是OS进行资源分配的最小实体

  同一进程中的资源是共享的,不同进程之间的资源是隔离的。

(三)进程管理

以时间线为主轴。
  

以时间线为主轴
  

1.需要把进程这个抽象概念用数据表示,变成数据才能被计算机处理

  • 关联程序的信息
  • 关于运行的一些信息
  • 分配的资源
  • 调度用到的信息

2.对进程状态划分,区分出处于不同情况下下的进程

  • 新建(进程处于正在创建中)
  • 就绪(万物具备只欠CPU)
  • 运行(进程的指令真正在CPU运行着)
  • 阻塞(进程由于等待外部条件,所以暂时无法继续)
  • 结束(进程的所有指令执行结束,但PCB暂时保留,OS还需要做一些其他工作的时候)

在这里插入图片描述
—> 新建:随着程序启动运行
新建 —> 就绪:进程的初始化工作完全完成(这个工作由OS的指令完成)
就绪 —> 运行:进程被OS选中,并分配了CPU后
运行 —> 结束:进程的最后一条指令执行结束
运行 —> 就绪:1.被高优先级的进程抢占了
           2.时间片耗尽
           3.进程可以执行一些OS提供的系统调用,主动放弃
运行 —> 阻塞:等待一些外部条件:等待IO设备;进程休眠一段时间;…
阻塞 —> 就绪:外部条件满足了:IO数据来了;休眠时间到了…
结束 —> :进程PCB彻底被OS回收了
在OS视角下,同一时刻,处于不同状态下的进程不止一个
处于新建:有n1个
处于就绪:有n2个
处于运行:只有1个
处于结束:有n3个
处于阻塞:有n4个
在这里插入图片描述
就绪队列:装有所有处于就绪状态的进程,一般就一个。
阻塞队列:等待某些外部条件的进程所组成的队列,一般每个条件都可以有一个。

3.现在手上有等待分配CPU的所有进程列表,选择哪个进程上CPU

  • 先来先服务
  • 优先级划分
  • 短作业优先级

4.OS什么时候会介入进程调度

  • 一个新的进程刚处于就绪状态时,当该进程优先级比较高时 —— 具备这种能力的OS称为抢占式
  • 一个进程结束后
  • 进程的时间片耗尽时 —— OS每搁一段时间会调度一次
  • 进程主动放弃CPU —— 1.运行 —> 阻塞 2.运行 —> 就绪

5.OS具体怎么进程切换

通过 上下文 切换 —— 保护上一个进程的上下文+恢复下一个进程的上下文。

保护上下文:把寄存器中的值,保存到内存的某个位置。
恢复上下文:把寄存器之前保存的值,写入寄存器中。
在这里插入图片描述
  

三、OS的一些概念

1.并行(parallel) vs  并发(concurrent)

并行:进程真在同时执行(微观角度的同一时刻,只会在多CPU多核场景下)
并发:进程假的同时执行(微观上,表现为一次只执行一个进程;宏观上,多个进程在“同时”进行)

2.用户态(user space)vs  内核态(kernel space)

在这里插入图片描述

  • CPU正在执行的是OS的指令时,就进入到内核态;正在执行的是普通进程的指令时,就在用户态。

  • 内核态的指令权限高(所有硬件都能访问);用户态指令权限低(只能访问OS规定的资源)

  • 管理的核心就是权限的划分,CPU本身拥有权限开关
    在这里插入图片描述

  • 内核态指令可以访问所有内存

  • 用户态指令只能访问进程自己的内存
    在这里插入图片描述

切换方式:

  • syscall(系统调用):操作系统实现一组访问
  • 通过CPU中断进程OS的指令
      
    用户态的性能较好,内核态的性能较差。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值