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情况的更多相关文章

  1. 检测系统中进程占满单个cpu的情况

    #!/bin/bash function thread_used_cpu(){ # $1 为单个cpu负载的百分比 if [[ $1 == "" ]];then full_load ...

  2. 十天学会CS之操作系统——进程管理01

    进程管理01 进程的概念 进程是计算机中一个非常重要的概念,在整个计算机发展历史中,操作系统中程序运行机制的演变按顺序大致可以分为: 单道程序:通常是指每一次将一个或者一批程序(一个作业)从磁盘加载进 ...

  3. [进程管理]Load和CPU利用率是如何算出来的

    本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址: http://www.penglixun.com/tech/system/how_to_ca ...

  4. 操作系统--进程管理(Processing management)

    一.进程的组成 进程通常由程序.数据和进程控制块(Process Control Block,PCB)组成. 二. 进程的状态以及状态切换 进程执行时的间断性决定了进程可能具有多种状态,最基本的三种状 ...

  5. 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 ...

  6. 操作系统实验一:进程管理(含成功运行C语言源代码)

    目录 操作系统实验一:进程管理 1.实验目的 2.实验内容 3.实验准备 3.1.1进程的含义 3.1.2进程的状态 3.1.3进程状态之间的转换 3.2 进程控制块PCB 3.2.1进程控制块的作用 ...

  7. 【CPU】进程管理之五状态模型

    本文为第三篇,进程管理之五状态模型,进程在操作系统里边是有多个状态的,本文就是了解进程在操作系统中的多个状态 1.进程的五个状态 创建状态 就绪状态 阻塞状态 执行状态 终止状态 2.进程处于这五种状 ...

  8. OS之进程管理---实时CPU调度

    引言 一般来说,我们将实时操作系统区分为软实时系统(soft real-time system)和硬实时系统(hard real-time system).软实时系统不保证会调度关键实时进程,而只保证 ...

  9. Linux 操作系统(四)用户组管理&进程管理&任务调度

    以下实例均在Centos7下验证 Centos7 查看命令帮助 man xxx 用户组管理 useradd useradd user1 password user1 cat /etc/passwd # ...

随机推荐

  1. Linux 虚拟机安装后的配置和一些命令符笔记

    一.安装后的配置 1.设在终端的字体为等宽字体 比如:DejaVu Sans Mono 2.将当前的普通用户加入到sudo用户组adduser en sudochmod +w /etc/sudoers ...

  2. 全栈工程师带你开发 ,node开发人脸识别门禁系统

    效果图:       知识点: 人脸识别SKD部署,  webRTC视频流处理,URL构建blob对象,Canvas映射截图,ajax数据交互,Node图像处理,跨域与413处理,base64解码,p ...

  3. MapReduce三种join实例分析

    本文引自吴超博客 实现原理 1.在Reudce端进行连接. 在Reudce端进行连接是MapReduce框架进行表之间join操作最为常见的模式,其具体的实现原理如下: Map端的主要工作:为来自不同 ...

  4. 浅谈大数据和hadoop家族

    按照时间的早晚从大数据出现之前的时代讲到现在.暂时按一个城市来比喻吧,反正Landscape的意思也大概是”风景“的意思. 早在大数据概念出现以前就存在了各种各样的关于数学.统计学.算法.编程语言的研 ...

  5. js Date() 浏览器兼容问题解决

    一般 直接new Date() 是不会出现兼容性问题的,而 new Date(datetimeformatstring) 常常会出现浏览器兼容性问题,为什么,datetimeformatstring中 ...

  6. 使用 TUN 设备实现一个简单的 UDP 代理隧道

    若要实现在 Linux 下的代理程序,方法有很多,比如看着 RFC 1928 来实现一个 socks5 代理并自行设置程序经过 socks5 代理等方式,下文是使用 Linux 提供的 tun/tap ...

  7. Qt全局宏和变量

    1.  Qt 全局宏定义 Qt版本号: QT_VERSION :  (major << 16) + (minor << 8) + patch 检测版本号: QT_VERSION ...

  8. HDFS源码分析之NameNode(1)————启动过程

    源码:2.8.0 入口类:org.apache.hadoop.hdfs.server.namenode.NameNode main方法会调用createNameNode 创建 NameNode 实例, ...

  9. asp.net web api 2.2 基础框架(带例子)

    链接:https://github.com/solenovex/asp.net-web-api-2.2-starter-template 简介 这个是我自己编写的asp.net web api 2.2 ...

  10. 在Java环境上运行redis

    首先你得有Java环境,不多说,参考http://jingyan.baidu.com/article/f96699bb8b38e0894e3c1bef.html 下载redis驱动包 链接:http: ...