转自:https://zhuanlan.zhihu.com/p/37917981 这一章主要是对如下问题的解释. 1.Process(进程)是什么? 简单说process就是一个运行中的程序. 2.怎么去虚拟出很多CPU? 操作系统可以让一个进程运行,然后停止这个进程让另外一个进程运行,只要交替的时间足够快,使用者就觉得多个进程是在同时运行的.能够让这个过程实现的基本技术就是time sharing,这可以让cpu可以去实现上述进程的切换. 3.Process的主要组成部分有哪些? 1.Proc…
Android 进程生命周期 Process Lifecycle 进程的生命周期 Android系统会尽力保持应用的进程,但是有时为了给新的进程和更重要的进程回收一些内存空间,它会移除一些旧的进程. 为了决定哪些进程留下,哪些进程被杀死,系统根据在进程中在运行的组件及组件的状态,为每一个进程分配了一个优先级等级. 优先级最低的进程首先被杀死. 这个进程重要性的层次结构有五个等级,下面就列出这五种进程,按照重要性来排列,最重要的放在最前. 一.前台进程 Foreground process 前台进…
进程控制块 在Linux中,每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,它通常包含如下信息: 进程id.系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整数. 进程的状态,有运行.挂起.停止.僵尸等状态. 进程切换时需要保存和恢复的一些CPU寄存器. 描述虚拟地址空间的信息. 描述控制终端的信息. 当前工作目录(Current Working Directory). umask掩码. 文件描述符表,包含很多指向file结构体的指针. 和信号相关的…
我们知道,每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体.现在我们全面了解一下其中都有哪些信息. 进程id.系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整数. 进程的状态,有运行.挂起.停止.僵尸等状态. 进程切换时需要保存和恢复的一些CPU寄存器. 描述虚拟地址空间的信息. 描述控制终端的信息. 当前工作目录(Current Working Directory). umask掩码. 文件…
进程组(process group) 进程组顾名思义是指一个或多个进程的集合.他们通常与同一个job(可以从同一个终端接收信号)相关联.每个进程组拥有一个唯一的Process Group Id.可以使用getpgrp或getpgid获取进程的Process Group Id: #include <unistd.h> /* 返回调用进程的进程组Id */ pid_t getpgrp(void); /* 若pid为0,作用与getpgrp相同 */ pid_t getpgid(pid_t pid)…
在python程序中的进程操作 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程.多个进程可以实现并发效果,也就是说,当我们的程序中存在多个进程的时候,在某些时候,就会让程序的执行速度变快.以我们之前所学的知识,并不能实现创建进程这个功能,所以我们就需要借助python中强大的模块. multiprocess模块…
昨日内容回顾 操作系统纸带打孔计算机批处理 —— 磁带 联机 脱机多道操作系统 —— 极大的提高了CPU的利用率 在计算机中 可以有超过一个进程 进程遇到IO的时候 切换给另外的进程使用CPU 数据隔离 进程与进程之间的数据是隔离的 时空复用 在同一时刻 多个程序宏观上的并行分时系统 —— 反而降低了CPU的效率 提高了用户体验 将时间分片 每一个进程都能够使用CPU一个时间片的时间 时间片轮转 一个进程在使用cpu的时候时间片到了, 就会切换到另一个进程实时系统 —— 实时的响应任务 有一个进…
在前面的章节我们了解到,进程之间是有关联的: 每个进程都有一个父进程: 子进程退出时,父进程可以感知并且获取子进程的退出状态. 本章我们将了解: 进程组的更多细节: sessions的内容: login shell和我们从login shell启动的进程之间的关系.   一 终端登录(Terminal Logins) BSD Terminal Logins  BSD终端的登录程序在过去35年都没有改变. 系统管理员(the system adminstrator)创建一个文件 /etc/ttys…
1 进程快照(Process Accounting) 当一个进程终止时,内核会为该进程保存一些数据,包括命令的小部分二进制数据.CPU time.启动时间.用户Id和组Id.这样的过程称为process accounting,本篇译为进程快照. 函数acct可以打开或关闭进程快照功能. 负责记录快照的数据结构如下所示: 成员说明: ac_flag成员记录进程执行过程中的特定事件(稍后的表中会详细说明): 进程创建时,初始化进程快照的数据在进程表(process table)中,但是只有在进程终止…
本章包含内容有: 创建新进程 程序执行(program execution) 进程终止(process termination) 进程的各种ID   1 进程标识符(Process Identifiers) 每个进程都有一个唯一的标识符,进程ID(process ID). 进程的ID是可重用的,如果一个进程被终止,那么它的进程ID会被系统回收,但是会延迟使用,防止该进程ID标识的新进程被误认为是以前的进程. 三个特殊ID的进程: Process ID 0:调度者进程,内核进程. Process…