进程管理

作者: minlover | 来源:发表于2017-06-08 12:53 被阅读3次

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

相关文章

  • Android性能探索

    进程管理&内存管理 进程生命周期进程优先级:前台进程可见进程服务进程后台进程 (LRU Cache & 占用内存...

  • linux 下的系统调用

    一、主要有以下模块 -进程管理-内存管理-文件管理-信号处理-进程通信-网络通信 一、进程管理 1.父进程通过fo...

  • Linux 系统管理

    视频教程:Linux系统管理 一、进程管理 进程管理 简介:进程就是正在运行的程序或者命令,进程管理就是对正在运行...

  • Linux进程管理详解(转)

    Linux进程管理详解 1.1 Linux进程管理 进程管理是操作系统的最重要的功能之一。有效率的进程管理能保证一...

  • Linux 内存笔记基础

    系统 1. 内存管理 2. 文件目录 3. IO 4. 进程管理进程创建进程控制进程通信进程同步 5. 线程管理线...

  • supervisor

    Supervisor进程管理,只能管理非daemon的进程,不能管理守护进程。 安装 yum 默认主配置文件在/e...

  • 操作系统总览

    操作系统的 操作系统的用户界面 进程管理 处理机调度 存储管理 进程和存储管理示例 windows进程和内存管理 ...

  • Linux进程管理 day22

    1.管理进程状态2.管理后台进程3.进程的优先级4.系统平均负载 一、管理进程状态 昨天主要学习了进程(正在运行的...

  • mac 安装配置supervisor

    supervisor 管理进程用的, 公司线上的进程管理就是supervisor.python 写的 , 子进程中...

  • 打通Framework与Kernel-谈谈我对进程管理的理解

    Kernel:Linux学习-进程管理与调度(一)-进程描述及其生命周期Linux学习-进程管理与调度(二)-进程...

网友评论

    本文标题:进程管理

    本文链接:https://www.haomeiwen.com/subject/revnfxtx.html