操作系统学习笔记

进程管理

2017-06-08  本文已影响3人  minlover

虚拟内存的三个结构: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

上一篇下一篇

猜你喜欢

热点阅读