什么是进程➡进程调度
什么是进程
- 进程的管理方法
- 什么是进程调度
- 进程调度的解释
- 进程调度的几个属性的解释
- 进程的虚拟地址空间
- 进程间交互(进程间通讯)
进程的管理方法
1.描述:
对于进程描述来讲,会描述一个进程有那些属性和信息,通过一个结构体来描述,这个结构体也称为PCB(进程控制块)。
2.组织:
通过某种数据结构(双向链表),来组织进程的信息,双向链表的节点就是PCB,可以进行添加和删除节点操作。
什么是进程调度
我们任务管理器一开 基本上就是几十个进程或者上百进程,但是我们的cpu也只是几核而已(几核代表能同时进行几个进程或者任务),所以要想让大量的进程同时执行,就有了并行执行和并发执行的概念。
并行执行:每个cpu的一个核心上,可以独立的运行一个进程,运行进程的相关指令,多个cpu核心就可以做到同时独立的运行多个进程。
并发执行:每个cpu的一个核心上,虽然只可以独立运行一个进程,但是我让他运行进程A,然后再运行进程B,再运行进程C,只要切换进程够快,宏观上就可以看成是独立的同时运行多个进程。
进程调度,其实就是通过并发和并行执行,让计算机同时运行多个进程任务。这就是多任务操作系统(现在基本上都是多任务操作系统)。
进程调度的解释
在进程管理会涉及两部分,一部分是进程的描述,另一部分是进程的控制
对于进程描述来讲,会描述一个进程有那些属性和信息,通过一个结构体来描述,这个结构体也称为PBC(进程控制块)。
在PCB中一共7种信息
1.pid进程身份标识 ,2.内存指针,3.文件描述符表,4,进程状态,5.进程优先级,6.进程上下文,7.进程记账信息
其中4-7这几个属性就是与进程调度有关系。
进程调度的几个属性的解释
1.进程状态:
进程分成了就绪状态和堵塞状态。就绪状态下的进程才可以调度到cpu来执行,堵塞状态的就不行。
2.进程优先级:
系统调度的时候,根据优先级来给进程安排时间,可能A进程时间多,B进程时间少,C进程几乎没有。但是创建进程的时候,也可以通过一些系统调度来干预优先级。
3.进程上下文:
在cpu上执行了部分进程A的时候,需要去执行进程B了,这时候就要把进程A运行的中间结果保留下来(cpu寄存器进行存档,然后存到PCB的上下文信息中去(内存里)),然后去执行进程B,等到要执行进程A的时候,就恢复当时的中间结果(读档)接着执行。
对进程来说,上下文就是cpu里的寄存器的值
4.进程记账信息:
每个进程在cpu上执行的时间,做出记录(辅助调度的效果)。
对于执行进程来讲,虽然有着优先级,可以让进程吃到cpu的资源,但是还有一些可能会导致某些进程完全吃不到资源,所以对进程在cpu上执行的时间做出记录,就可以根据情况来更加均衡合理的来分配cpu资源给进程。
进程的虚拟地址空间
在给进程分配内存资源的时候,可能会出现越界访问,比如进程A是一块空间,进程B是一块空间,但是有可能进程A在没有约束的情况下,会访问越界到进程B的空间中去,导致了进程间的相互影响。
所以我们有了虚拟地址空间这个概念
虚拟地址空间就是对每个进程划分出一个内存空间(也是活动范围),(不是真的内存空间,是虚拟的!),然后通过一个叫MMU的设备来完成虚拟地址到真实物理地址(内存)的映射。
MMU可以对进程的地址进行检查,如果非法,就会杀死进程。 使用虚拟地址空间,让进程间有了"隔离性",防止了进程间的干扰,让系统更加稳定了。进程是要求有独立性的。
进程间交互(进程间通讯)
在虚拟地址空间的情况下,进程间存在了隔离性,但是在有些情况下,我们也希望两个进程之前可以进行数据的交互,所以就有了一个机制进程间通讯。
进程间通讯:
找出一个多个进程都可以访问的 公共资源,通过这个资源来交互进程间的数据。
这个资源可以是内存,文件,网卡等等。
进程与进程之间如果想进行通讯,就需要使用这种进程间通讯机制(使用文件,网卡等)。
什么是进程➡进程调度相关推荐
- 面试-操作系统-进程管理-进程-进程调度-死锁
文章目录 ==概念== 备注 简单说下你对并发和并行的理解? 同步.异步.阻塞.非阻塞的概念? 操作系统概念? 一个程序从开始运行到结束的完整过程,你能说出来多少? 用户态和内核态是如何切换的? 什么 ...
- 计算机系统学习之(1):基础知识概要——进程、中断、线程、竞态条件、关键区域、死锁、进程调度
文章目录 进程的创建 哪些事件导致进程的创建 fork 和 exec 命令创建和控制进程 fork() 命令 execve() 命令 进程的状态 中断 中断的种类 线程 线程共享内容 线程独有内容 进 ...
- python -- 进程
什么是进程 要了解进程先了解操作系统,可以参考一下我的上一篇博客:操作系统 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基 ...
- 操作系统03进程管理Process_Scheduling
2 Process Scheduling >Type of scheduling >Scheduling Criteria (准则) >Scheduling Algorithm &g ...
- Python 之 进程
目录 理论知识 操作系统背景知识 进程 什么是进程 进程调度 进程的并行与并发 同步异步阻塞非阻塞 同步和异步 阻塞与非阻塞 同步/异步与阻塞/非阻塞 组合 进程的创建与结束 进程的创建 进程的结束 ...
- 【操作系统之哲学导论】进程/线程管理篇
文章目录 基础原理 操作系统导论 1.程序是如何运行的 2.操作系统的核心功能 操作系统基本概念 1.计算机硬件基本知识 2.用户态和内核态 3.进程 4.系统调用 5.壳 进程管理 进程 进程调度 ...
- 操作系统——进程之处理机调度
操作系统--进程之处理机调度 一.处理机调度的本概念和层次 1.高级调度(作业调度) 2.中级调度(内存调度) 3.低级调度(进程调度) 二.进程调度的时机.切换与过程.方式 1.进程调度的时机 2. ...
- 基于C++实现的进程调度算法
资源下载地址:https://download.csdn.net/download/sheziqiong/85650672 一.问题描述与分析 1.1 设计构想 程序能够完成以下操作:选择调度算法;查 ...
- 【学习笔记】操作系统之哲学原理
引言: 魔术与管理 用户程序与操作系统 进程.内存和文件 进程原理 进程的状态 操作系统管理进程 进程调度 调度算法 1.先来先服务调度算法 2.时间片轮转算法 3.短任务优先算法 4.优先级调度算法 ...
最新文章
- 2021年大数据Hive(八):Hive自定义函数
- 在Linux上安装Memcached服务
- 数据库归档及热点库_postgresql连续归档及时间点恢复的操作
- 怎么快速学好php,学习编程的快速高效方法
- tensorflow实现原理
- python程序发布 ubuntu_在ubuntu16.04的虚拟环境中运行Python程序作为服务
- linux查看tcp连接状态_Linux使用lsof查看打开的文件和网络连接
- Hyper-V 2012 R2 故障转移群集之建立域控(AD DS)与加入域
- LINUX-VIM编辑器常用命令大全(超全)
- 云管平台-FIT2CLOUD CMP2.0
- c语言窗口炸弹代码,C语言实现宾果消消乐
- 新司机的黑裙战斗机 篇三:群晖【番外篇】群晖系统崩溃后的数据抢救
- 计算机无法启动printspooler,打印服务PrintSpooler无法启动解决方法
- 电脑无线连接打印机(DCP-1618W)
- 级差公排php如何_矩阵,双轨,级差三种制度的对话
- Redis过期策略---实现原理
- python半径为2.11的圆球的体积_Python科学计算神器之Numpy-2
- 基于java愤怒的小鸟游戏的设计与实现
- 不能用来修饰interface修饰的方法
- 我的Photoshop大师之路(五)