其他分享
首页 > 其他分享> > 计算机操作系统秋招学习第一轮(四)

计算机操作系统秋招学习第一轮(四)

作者:互联网

# 

主要参考书籍:《CSAPP》、《图解操作系统》、《MOS现代操作系统》

上一篇主要就是进程概念的阐述与拓展

本篇我们来学习一下:  如何控制进程



控制进程,即控制进程的相关操作,创建什么的...



## 进程的控制结构

操作系统用**进程控制块(PCB)**对进程进行控制
PCB中包含了很多进程的相关控制信息

从代码的层面来看:
PCB就是一个含有很多与进程相关成员的**结构体**或者是**类对象**
抽象来看:
PCB就是**一张表**,上面填满了进程上的信息,或者是**一个块**(存储空间),块(存储空间)里堆放着进程的信息

```c++

具体含有什么信息

  1. 进程描述信息
    • 进程标识符(PID):记录你是哪一个进程咯 相当于是进程的名字
    • 用户标识符(UID):记录进程归属于哪些用户使用
  2. 进程控制和管理信息
    • 进程当前状态:之前提到的那些状态
    • 进程优先级:进程抢占CPU的优先级别
  3. 资源分配清单
    • 内存地址空间
    • 虚拟地址空间
    • 已打开的文件列表
    • 所使用的IO设备列表
  4. CPU相关信息
    • CPU中寄存器的值

上下文

CPU上下文切换

CPU在执行程序的时候,需要有特定的程序计数器和CPU寄存器(让CPU知道程序任务在哪里加载,又从哪里开始运行)
这些都是CPU执行程序时所需的环境,这个环境就称为上下文。

进程上下文切换

进程的上下文切换不仅包含了虚拟内存、栈、全局变量等用户空间的资源,还包括了内核堆栈、寄存器等内核空间的资源。

而能让进程上下文切换实现的就是PCB表中的数据

PCB之间如何组织在一块

链表

最基本就是用链表组织在一块

如何管理

对进程进行控制

进程的创建

创建进程:

进程的阻塞

进程需要等待一件事情(或者一个、一些条件)时,可以通过调用阻塞语句来使自己进入阻塞状态,而唤醒阻塞进程需要另一个进程

阻塞进程的详细过程:

进程的唤醒

处于阻塞的进程绝不可能唤醒自己

阻塞进程在等待一个唤醒IO事件,需要由别的进程发消息给它

唤醒过程如下:

进程的终止

终止进程:三种方式

正常结束

异常结束

外部干预

终止流程:

进程的上下文切换(详细)

什么情况会引起进程的上下文切换

这个常考

哪些场景?

标签:第一轮,操作系统,队列,阻塞,PCB,秋招,上下文,进程,CPU
来源: https://www.cnblogs.com/black-worrior-2000/p/16586849.html