进程基本概念
来源:互联网 发布:keynote如何在windows 编辑:程序博客网 时间:2024/04/29 18:10
进程基本概念
程序
程序是完成特定任务的一系列指令集合。
进程
(1)从用户的角度来看进程是程序的一次执行过程
(2)从操作系统的核心来看,进程是操作系统分配的内存、CPU时间片等资源的基本单位。
(3)进程是资源分配的最小单位
(4)每一个进程都有自己独立的地址空间与执行状态。
像UNIX这样的多任务操作系统能够让许多程序同时运行,每一个运行着的程序就构成了一个进程。进程是操作系统对资源的一种抽象。
进程数据结构
进程的静态描述:主要由三部分组成:PCB、有关程序段和该程序段对其进行操作的数据结构集(数据段、堆栈段,所以有时候也把晋城的数据结构描述成4部分)。
(1)进程控制块:用于描述进程情况及控制进程运行所需的全部信息。
(2)代码段:是进程中能被进程调度程序在CPU上执行的程序代码段。
(3)数据段:一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行后产生的中间或最终数据
(4)堆栈段:也是进程在执行过程中产生的临时数据部分
进程和程序的区别
- 进程是动态的,程序是静态的
- 进程的生命周期是相对短暂的,而程序是永久的。
- 进程具有数据结构PCB,程序没有。PCB是操作系统感知进程存在的一个重要数据结构(cpu通过进程控制块来控制进程)
- 一个进程只能对应一个程序,一个程序可以对应多个进程。
早期是没有进程这个概念,当出现中断技术以后才出现进程这个概念
进程经典三态
- 就绪
- 等待(阻塞)
- 运行
(1)因创建而就绪
(2)因调度而执行
(3)因时间片用完而重新就绪;
(4)执行中因I/O请求而阻塞;
(5)I/O完成而就绪
注意:阻塞以后不能直接执行,必须进入就绪状态。
Linux内核进程状态
- 运行状态(TASK_RUNNING)
- 可中断睡眠状态(TASK_INTERRUPTIBLE)
- 不可中断睡眠状态(TASK_UNINTERRUPTIBLE)
- 暂停状态(TASK_STOPPED)
- 僵死状态(TASK_ZOMBIE)
备注:就绪态深入理解:内存中就绪和交换空间中就绪,操作系统支持虚拟内存。虚拟内存的实现需要操作系统支持:内存段式管理、页式管理、段页管理。
进程调度算法
相关术语
1.进程控制块
- 进程描述信息
- 进程标识符用于唯一的标识一个进程。
进程控制信息
- 进程当前状态
- 进程优先级
- 程序开始地址
- 各种计时信息
- 通信信息
资源信息
- 占用内存大小及管理用数据结构指针
- 交换区相关信息
- I/O设备号、缓冲、设备相关的数结构
- 文件系统相关指针
- 现场保护信息
- 寄存器
- PC
- 程序状态字PSW
- 栈指针
- 进程描述信息
2.进程标示
- 每个进程都会分配到一个独一无二的数字编号,我们称之为“进程标识”(process identifier),或者就直接叫它PID.
- 是一个正整数,取值范围从2到32768
- 当一个进程被启动时,它会顺序挑选下一个未使用的编号数字做为自己的PID
- 数字1一般为特殊进程init保留的
3.进程创建
- 不同的操作系统所提供的进程创建原语的名称和格式不尽相同,但执行创建进程原语后,操作系统所做的工作却大致相同,都包括以下几点:
- 给新创建的进程分配一个内部标识,在内核中建立进程结构。
- 复制父进程的环境
- 为进程分配资源, 包括进程映像所需要的所有元素(程序、数据、用户栈等),
- 复制父进程地址空间的内容到该进程地址空间中。
- 置该进程的状态为就绪,插入就绪队列。
4.进程撤销
- 进程终止时操作系统做以下工作:
- 关闭软中断:因为进程即将终止而不再处理任何软中断信号;
- 回收资源:释放进程分配的所有资源,如关闭所有已打开文件,释放进程相应的数据结构等;
- 写记帐信息:将进程在运行过程中所产生的记帐数据(其中包括进程运行时的各种统计信息)记录到一个全局记帐文件中;
- 置该进程为僵死状态:向父进程发送子进程死的软中断信号,将终止信息status送到指定的存储单元中;
- 转进程调度:因为此时CPU已经被释放,需要由进程调度进行CPU再分配。
5.0号进程(也称为)空闲进程/守护进程
- 6.内存===》交换空间,支持虚拟内存。
- 7.1号进程 第一个用户进程
- 8.查看内核进程pid最大配置
[root@localhost ~]# cat /proc/sys/kernel/pid_max
32768
- 9.终止进程方法中
SIGABORT/Ctr+c/Ctr+d/Ctr+\
- 进程基本概念
- -进程基本概念
- 进程基本概念
- 进程基本概念
- 进程基本概念
- 进程基本概念
- 进程基本概念
- 进程-进程基本概念
- 转载:进程的基本概念
- Linux进程编程基本概念
- linux进程的基本概念
- Linux进程的基本概念
- Java进程的基本概念
- 进程的基本概念
- [linux]进程(一)--基本概念
- 线程、进程、会话基本概念
- 进程的基本概念
- 进程的基本概念
- FTP相关内容学习_java
- PHP利用SOAP调用asmx文件
- Android Context完全解析,你所不知道的Context的各种细节
- 在离线安装谷歌插件(即.crx文件)的时候,不要直接从压缩包中的.crx文件直接拖入浏览器,而是要解压后再拖入,不然会报错。而这个错误很容易让人感觉是.crx文件有问题导致的,其实不是。
- 架构师知识体系(1)--WEB架构师成长之路
- 进程基本概念
- MFC 动态链接库的生成调用。
- Android内存泄漏分析
- logback配置文件分析
- 按价格排序
- final参数
- Android缓存机制Lrucache内存缓存和DiskLruCache磁盘缓存
- android6.0获取通讯录权限
- 【腾讯TMQ】走进标准化测试