进程
来源:互联网 发布:各国域名后缀 编辑:程序博客网 时间:2024/05/21 22:56
主要研究进程对CPU是如何管理的。
进程状态
A process includes:
- program counter and other registers
- stack
- heap
- data section
- text section
Process States
- new
- ready (就绪态)
- runing (运行态)
- waiting (阻塞态)
- terminated
进程切换
进程控制块PCB
PCB是一个数据结构,是一个结构体,保存了进程的状态等等
Process Control Block:
* Process state
* Program counter
* CPU registers
* CPU scheduling information
* Memory-management information
* Accounting information
* I/O status information
* ……
进程切换时,先将当前进程的状态保存在当前进程的PCB中,然后再由CPU调度算法选择一个就绪态进程,将此进程的PCB读入,开始运行此进程。
进程从运行态切换到就绪态是通过时钟中断进行控制的
进程由运行态进入等待态是由进程主动通过一些操作进入的,这些操作是系统调用,于是会陷入内核,然后内核就会保存状态,切换进程
系统会将所有进程的PCB集中管理,可以抽象成队列的概念。
大多数系统通常使用数组进行进程的管理,原因如下:
1. 随机访问比较快速
2. 数组结构简单,管理起来方便
3. 局部性原理强
进程创建
进程间资源的共享
- 子进程共享父进程全部资源 –多见于嵌入式系统
- 子进程共享部分父进程资源 –Unix
- 子进程与父进程独立 –Windows
进程的创建
每个进程都拥有自己独立的虚拟地址空间
* 子进程可以通过拷贝父进程的所有资源来创建
* 可以通过父进程直接加载一个新程序来创建
进程的结束
在Unix下,进程结束后资源由父进程来回收,如果父进程不回收,则由系统的根进程(init)来回收。
进程间通信
- 消息传递
消息传递有信号量等多种方式,分阻塞和非阻塞两种方式- 阻塞型
当进程请求系统调用后,如果系统调用不能马上执行,则会进入等待状态,也就是说进程不知道系统调用是不是立即执行 - 非阻塞型
当进程请求系统调用后,如果系统调用不能马上执行,则会返回通知进程系统调用没有执行
- 阻塞型
- 共享内存
进程在实际物理内存中并不是理想状态的完全独立,而是两个进程中不相同的部分独立,而相同的部分(例如代码段)则共享。
多进程在一定意义上实现了模块化,便于管理
阅读全文
0 0
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- 进程
- HDOJ2116 Has the sum exceeded
- 函数重载与函数指针
- 求一个整数的百位数,十位数,个位数
- 云存储平台——Seafile搭建
- Centos7下docker安装log.io日志监控
- 进程
- PEP8 Python 编码规范整理
- 基本
- A. Classroom Watch
- 个人知乎 ##基础六/功能六-异步队列实现赞踩站内信
- Item 10:令赋值操作符返回一个this指针【effective C++读书笔记】
- 机器学习中学习曲线的 bias vs variance 以及 数据量m
- 7.1
- 链路层