【我的笔记】进程管理

虚拟内存的三个结构:mm_struct、vma_struct、页目录/页表

进程是动态创建的 --> 复制 fork / 克隆 clone;最初的进程(0号进程) --> 静态做一个

进程的生命周期:① 进程创建 --> ② 进程执行影加载 --> ③资源分配(包括进程的虚拟内存) --> ④进程调度(分配或回收进程的 CPU) --> 进程终止(CPU 通过中断或时钟中断拿回控制权)

进程间:互斥、同步、通信。


1、进程管理的核心是处理器资源额分配,所以进程管理又称为处理器调度(处理器的分配和回收)。

处理器分配给只等待处理器的程序。

单道程序 --> CPU 按顺序、逐条执行程序中的指令

多道程序 --> 并发、资源共享

Process 进程、Thread 线程  -->  多个线程共用一个进程的资源,一个进程中可以有多个线程。

进程 = 程序 + 数据 + 档案

①进程用于执行程序。创建一个进程必须执行程序。②一个进程可以值运行一个程序,也可在运行期间更换程序;一个程序可被多个进程同时运行。③所有程序都是在进程中执行,包括操作系统。


2、进程控制块PCB

为进程建立的档案 --> PCB(Process Control Block)进程控制块

Linux --> task_struct  ;ucore --> proc_struct

(1)PCB 是进程存在的唯一标识,含有进程的描述信息和控制信息:

① 进程标示,即进程名

pid —— 进程标识符;uid —— 用户标识符;gid —— 用户所属的组标识符。

② 进程状态

Ready —— 就绪状态:具备运行条件,只等待 CPU

Blocked —— 封锁状态(阻塞/等待/挂起/睡眠):因等待某种资源或事件暂时不能运行

Running —— 运行状态:已获得 CPU,正在执行程序。

③ 资源分配情况 :已获得的内存,已打开的文件等

④ 调度关系 :优先级 priority、进程类型、时间片 time slice

⑤ 进程现场信息 :CPU 现场,包括各种寄存器的值

⑥ 族系关系

⑦ 通信信息 :进程间的同步、互斥关系,锁、信号量等

⑧ 各类统计信息

⑨ 安全信息

(2)进程的 PCB 必须驻留在系统内存区中。组织 PCB 的方法有:

① PCB 结构数组 ②PCB 向量表(指针数组)③ PCB 链表(单就绪队列)④ PCB 链表(多就绪队列) ⑤ 其他结构 eg:红黑树

Ucore 中 PCB  --> hash 表 hash_list;Ucore 中所有进程的队列 --> proc_list

Linux 原来用过向量表,现在用红黑树


3、ucore 结构

① state ——状态,ucore 定义了四个状态:

Linux 差不多,就是等待状态分了几种。

② mm —— 虚拟内存,课为空

③ context —— 进程上下文,通用寄存器。

④ kstack —— 进程的系统堆栈,连续的2个物理页,8k

⑤ tf —— 中断帧指针,系统堆栈的栈顶

⑥ CR3 —— 页目录,可为 boot_pgdir

⑦ current —— 指向当前运行进程 PCB

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Linux 进程管理与程序开发 进程是Linux事务管理的基本单元,所有的进程均拥有自己独立的处理环境和系统资源,...
    JamesPeng阅读 7,204评论 1 14
  • Linux进程管理原理 Linux的进程管理,就是对硬件各资源进行分配、调度、销毁等工作,其主要部件的管理为:CP...
    魏镇坪阅读 5,224评论 0 6
  • 进程管理 进程相关的基本概念 进程是多处理程序中作为资源分配和独立运行的基本单位,进程实体由程序段、数据段、PCB...
    颜洛滨阅读 3,385评论 1 2
  • 进程的描述与控制 1.前趋图与程序执行1.1 前趋图介绍:描述程序先后执行顺序,又称为有向无循环图,可记为DAG(...
    孙梦翔阅读 4,044评论 0 1
  • 前两天无聊,手机爱奇艺想看的片子大多要会员,看到垫底辣妹这个名字,觉得肯定是个轻松搞笑的剧,就点进去看了。 故事其...
    亭子文阅读 2,532评论 2 0

友情链接更多精彩内容