操作系统--进程管理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 # ...
随机推荐
- 关于maven中一些问题的解决尝试
在maven中会遇到很多问题,pom.xml啊,数据库没有自动建表等等. 需要先把运行项目,所依赖的jar项目install安装一下,然后Maven --> update project 一下. ...
- 关于IOS的屏幕适配(iPhone)——资源适配
IOS的屏幕适配几乎不需要大量的代码操作,更多的时间我们只是动动鼠标选择一下就搞定.可以苹果在这方面做的还是比较人性的,解放了开发者. 首先来说说Iphone这几种屏(由于最近做的是iPhone AP ...
- Apache下通过shell脚本提交网站404死链
网站运营人员对于死链这个概念一定不陌生,网站的一些数据删除或页面改版等都容易制造死链,影响用户体验不说,过多的死链还会影响到网站的整体权重或排名. 百度站长平台提供的死链提交工具,可将网站存在的死链( ...
- servlet生成验证码
1.因为朋友们都说现在很少用java自带的图形用户接口,所以小白的我就没去看awt和swing组件,因为要抓紧时间学习后面的,完了出去找工作,等以后再回来了解awt和swing:所以制作验证码的代码是 ...
- 混合高斯模型(Mixtures of Gaussians)和EM算法
这篇讨论使用期望最大化算法(Expectation-Maximization)来进行密度估计(density estimation). 与k-means一样,给定的训练样本是,我们将隐含类别标签用表示 ...
- 用ESP8266+android,制作自己的WIFI小车(Android 软件)
先说一下这篇文章里面的内容:TCP 客户端, 自定义对话框, 自定义按钮, ProgressBar竖直显示, 重力感应传感器,手机返回键新开启界面的问题(返回上次的界面),数据保存 软件的通信是配合 ...
- 简单Elixir游戏服设计-玩法simple_poker
上回介绍了玩法,现在编写了玩法的简单建模. 做到现在感觉目前还没有使用umbrella的必要(也许以后会发现必要吧),model 应用完全可以合并到game_server. 代码还在https://g ...
- 基于java的后台截图功能的实现
Java后台截图功能的实现 背景介绍: 在近期开发的可视化二期项目中的邮件项目中,邮件中的正文中含有图片.该图片的产生是将一些html网页转为图片格式,刚开始考虑使用第三方组件库html2image和 ...
- js根据时间戳倒计时
今天有个需求,要在页面上做当前时间距离下个月1号的倒计时.在网上找了很多案例也试了很多,大部分都是获取本地当前时间,然后设置结束时间进行计算,然后倒计时.但是有几个问题: 1.如果本地时间和服务器时间 ...
- 第二章 MySQL入门篇
第一章 MySQL入门篇 一.MySql简介 简言: 和SQL Server数据库相同,MySQl也是一个关系型数据库管理系统.由瑞典的MySQL AB公司开发,2008年被SUN公司收购,2009年 ...