操作系统--进程管理1--单个CPU情况
1.进程概念
进程:一个正在执行的程序;操作系统提出进程概念目的:是为了跟踪程序在执行期间的状态。而程序只是一段代码,是一个静态的概念
无法准确描述程序执行时候发生的一切。程序代码被加载进内存后就以进程的形式存在。
2.进程的组成
逻辑地址空间:这个概念是由操作系统提出来的,目的是为了程序员更方便的编程,不用考虑实际的内存分配情况内存管理等情况,只有出现在存储性地址总线
上的地址是真实的物理地址,其他任何阶段出现的地址都是逻辑地址。程序看到的逻辑地址空间可以比实际的内存空间大很多,进程执行过程中
CPU需要访存的时候,由OS完成地址映射过程----把逻辑地址转换为物理地址。
执行引擎;程序代码;数据;占用的系统资源
PCB:进程控制块---是一个复杂数据结构---里面维护者进程运行所需要的所有信息。进程创建时候就要创建对应的PCB并进行相应的初始化,同时随着进程的执行
操作系统需要维护PCB的内容。操作系统管理进程实际上就是在管理进程的PCB。


3.进程PCB的组成
进程标识;进程上下文切换;进程控制信息:调度信息、状态、进程通信、存储信息、所用资源、进程所在队列信息
4.进程的特点:动态性;并发性;独立性;制约性,在多进程的系统中强调进程之间独立性,但是进程之间也需要进行合作,就需要配合;以及对共享资源的访问存在限制
5.进程的状态--主要分析3中主要的状态
注意:前提条件是仅有一个CPU的情况,多个进程竞争获得CPU的执行权,得到执行
进程创建:进程创建是由一个已经存在的进程,通过系统调用由操作系统内核创建的,此时就给进程分配PCB并初始化。
进程就绪态:进程创建后并完成了相应的初始化获得了除了CPU以外的其他资源,等待CPU的调度。OS管理所有处于就绪状态的进程方式:把进程的PCB组织成就绪队列。
进程执行:通过OS设定的CPU调度策略从就绪队列中选出一个进程获得CPU执行权。
进程阻塞:进程在运行的过程中,由于需要等待某个外部事件的发送,自己将CPU执行权让出,自身处于等态。
操作系统根据进程等待的事件分类,维护了多个等待队列。
6.进程状态之间的转换:
就绪态--运行态:新的进程被CPU调度
运行态--就绪态:CPU分配给进程的时间片用完
运行到--阻塞态:进程等待外部事件发生,放弃CPU执行权;CPU要进行新的调度
阻塞态--就绪态:阻塞的进程等待的外部事件发生,被唤醒,进入就绪队列
注意:在进行调度时,调度器决定新调度的进程是哪个,接着需要进行进程上下文切换:进入OS内核态,要保存上个进程的执行状态(寄存器值等),
加载新调度进程的状态,完成后将CPU执行权交给将要执行的进程。进程的状态保存在OS内核中进程对应的内核栈中。
随着进程的执行进程状态不断发生变化,操作系统管理的进程本质就是将PCB在几个队列之间进行迁移。

7.进程按照操作分类
IO绑定的进程:大多时候是需要进行IO操作、与用户交互的进程,这些进程真正的使用CPU的时间很短,假如给进程设置优先级:这些进程的优先级应该高
CPU绑定的进程:通常是一些要进行大量计算的,不常和用户交互的进程,这些进程需要的CPU时间比较长,但是没有严格的完成时间限制,设置优先级低
8.CPU调度器:是一段算法其功能就是在就绪队列中选择一个进程,完成进程上下文切换,让该进程被CPU执行。
CPU调度策略分类:非抢占式:当前进程正在执行,就绪队列来一个优先级较高的进程,当前进程会继续执行直到自愿放弃CPU执行权。
抢占式:当前进程正在执行,就绪队列来一个优先级较高的进程,当前进程被迫让出CPU,优先级较高的进程被调度。

操作系统--进程管理1--单个CPU情况的更多相关文章
- 检测系统中进程占满单个cpu的情况
#!/bin/bash function thread_used_cpu(){ # $1 为单个cpu负载的百分比 if [[ $1 == "" ]];then full_load ...
- 十天学会CS之操作系统——进程管理01
进程管理01 进程的概念 进程是计算机中一个非常重要的概念,在整个计算机发展历史中,操作系统中程序运行机制的演变按顺序大致可以分为: 单道程序:通常是指每一次将一个或者一批程序(一个作业)从磁盘加载进 ...
- [进程管理]Load和CPU利用率是如何算出来的
本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址: http://www.penglixun.com/tech/system/how_to_ca ...
- 操作系统--进程管理(Processing management)
一.进程的组成 进程通常由程序.数据和进程控制块(Process Control Block,PCB)组成. 二. 进程的状态以及状态切换 进程执行时的间断性决定了进程可能具有多种状态,最基本的三种状 ...
- linux关于进程、内存和cpu情况
1.load average: 2.03, 1.76, 1.80 1分钟.5分钟.15分钟平均负载 2.%Cpu(s):100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa ...
- 操作系统实验一:进程管理(含成功运行C语言源代码)
目录 操作系统实验一:进程管理 1.实验目的 2.实验内容 3.实验准备 3.1.1进程的含义 3.1.2进程的状态 3.1.3进程状态之间的转换 3.2 进程控制块PCB 3.2.1进程控制块的作用 ...
- 【CPU】进程管理之五状态模型
本文为第三篇,进程管理之五状态模型,进程在操作系统里边是有多个状态的,本文就是了解进程在操作系统中的多个状态 1.进程的五个状态 创建状态 就绪状态 阻塞状态 执行状态 终止状态 2.进程处于这五种状 ...
- OS之进程管理---实时CPU调度
引言 一般来说,我们将实时操作系统区分为软实时系统(soft real-time system)和硬实时系统(hard real-time system).软实时系统不保证会调度关键实时进程,而只保证 ...
- Linux 操作系统(四)用户组管理&进程管理&任务调度
以下实例均在Centos7下验证 Centos7 查看命令帮助 man xxx 用户组管理 useradd useradd user1 password user1 cat /etc/passwd # ...
随机推荐
- filter的两种使用方法
1. 在模板中使用filter 我们可以直接在{{}}中使用filter,跟在表达式后面用 | 分割,语法如下: {{ expression | filter }} 也可以多个filter连用,上一个 ...
- AngularJS -- 提供者(Providers)
点击查看AngularJS系列目录 转载请注明出处:http://www.cnblogs.com/leosx/ 每个Web应用程序都是有多个对象组合.协作来完成任务的.这些对象需要被实例化,并且连接在 ...
- Mysql 基于 Amoeba 的 读写分离
首先说明一下amoeba 跟 MySQL proxy在读写分离的使用上面的区别: 在MySQL proxy 6.0版本 上面如果想要读写分离并且 读集群.写集群 机器比较多情况下,用mysql pro ...
- QCW切割 --铁片
1.QCW切割旋转轴限位部件 --刘锦峰协助 :铁片 功率85% 最大功率100 最小功率50 脉宽0.1ms 调整焦点-0.5左右
- [js高手之路] html5 canvas动画教程 - 实时获取鼠标的当前坐标
有了前面的canvas基础之后,现在开始就精彩了,后面写的canvas教程都是属于综合应用,前面已经写了常用的canvas基础知识,参考链接如下: [js高手之路] html5 canvas系列教程 ...
- Linux入门之常用命令(11) 系统监控 vmstat top
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...
- Merge Two Binary Trees
Given two binary trees and imagine that when you put one of them to cover the other, some nodes of t ...
- php用PHPExcel库生成Excel文档的例子
<?php require_once '../libs/PHPWord/PHPWord.php'; require_once '../libs/PHPWord/PHPWord/IOFactory ...
- Prometheus : 入门
Prometheus 是一个开源的监控系统.支持灵活的查询语言(PromQL),采用 http 协议的 pull 模式拉取数据等特点使 Prometheus 即简单易懂又功能强大. Prometheu ...
- 网时|细数被鹿晗热点效应带火的心机boy们
今天上班早高峰的地铁格外的宽敞,不知道是不是因为大家都被鹿晗关晓彤的甜蜜暴击到已经忘了上班这码事了.本以为是为了新戏<甜蜜暴击>做宣传,结果工作室都相继承认,他们倒是甜蜜了,暴击全给粉丝了 ...