【从入门到放弃系列学习笔记1】linux进程管理 你真的懂linux吗?(更新中)

“linux的进程管理是怎么样的?说说你的理解”

先汇总一下近期遇到的一些问题,带着问题去学习,养成好习惯。
问题一:说说程序和进程的区别
问题二:什么是僵尸进程?怎么产生的?怎么标识的?
问题三:父进程如何调用子进程?
问题四:说说用哪些命令可以看进程相关信息?
问题五:TOP命令会有哪些内容显示?CPU信息包含哪些?load的三个值代表什么意思?
问题六:知道NICE命令吗?如何调整进程优先级?
UPDATING。。。


看了这些问题你心里都有明确的答案吗?

一、什么是进程,进程和程序的关系与区别

程序定义:“一段有序代码”

单一程序的基本属性:顺序性,封闭性,可再现性

由于处理机的单核,单一程序并发时会有哪些问题?

  • 间断性
  • 失去封闭性
  • 不可再现性

为了解决并发场景所以引入了进程管理,对程序进行描述和控制。

进程定义:“可并发执行的程序在一个数据集合上的运行过程”。

 

关系:进程=程序+堆栈计数器+PBC(Process Control Block进程控制块),进程是运行中的程序

PBC由哪些内容组成

   
进程描述信息
  • 进程标识符(PID)
  • 进程名
  • 用户标识符
  • 进程组关系(父子关系)
进程控制信息
  • 当前状态
  • 优先级
  • 代码执行入口地址
  • 程序磁盘地址
  • 运行统计信息
  • 进程间同步和通讯信息
  • 进程的队列指针
  • 进程的消息队列指针
所拥有的资源和使用情况  
CPU现场信息
  • 寄存器值
  • 指向该进程页表的指针

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本质区别:程序是静态的,进程是动态的。

 

二、进程状态和进程控制

就绪

  • 进程分配到除了CPU以外的所有必要资源后,只要获得CPU,就可以立即执行

执行

  • 获取到CPU后,其程序正在执行

阻塞

  • 由于发生某个时间而暂时无法继续执行,便放弃处理机而处于暂停状态,又叫等待、睡眠或者锁死

 

 那么还有没有其他状态呢?

有的,进程的创建、进程的终止

相互之间的切换关系见下图

 

 那么对于就绪状态来说,cpu一直没有分配到,却占着了大量的资源,是不是一种浪费呢?

对于这种情况,引入一个新的状态,挂起:挂起阻塞,挂起就绪,也就是阻塞和就绪可以通过挂起和唤醒命令进入这两个状态

有哪些进程控制原语?

  • 创建原语
  • 撤销原语/终止
  • 阻塞
  • 唤醒
  • 挂起
  • 激活

 

 

 三、线程概念

线程属性:

  • 轻型实体,基本不拥有资源
  • 独立调度和分派的基本单位
  • 可并发执行
  • 共享进程资源

线程的关键好处是从性能应用中得到的,在一个存在的进程中产生(或终止)一个线程比产生(或终止)一个进程化费少得多的时间。

线程的分类:

  • 核心级线程
  • 用户级线程

四、内核态和用户态

内核态和用户态:

  • 内核,内核是一个软件程序,用来访问硬件的程序
  • 内核态:当一个进程进入内核代码中执行时,我们就称为处于内核态

进入内核态的方式主要有3种:系统调用、异常和外围设备的中断。

 

 

五、用户接口

用户接口分为三大类:

1.命令接口(允许用户直接使用)

  • 联机命令接口(用户说一句,系统做一句),交互式命令接口
  • 脱机命令接口(用户说一堆,系统做一堆),批处理命令接口

2.程序接口(允许用户通过程序间接使用)

  • 有一组系统调用组成(程序接口=系统调用=广义指令)

3.GUI(图形界面)

 

六、操作系统的特征

  1. 并发:指两个或多个事件在同一时间内发生,宏观上是同时发生的,微观上是交替发生的
  2. 共享:资源共享,互斥共享、同时共享方式
  3. 虚拟:空分服用技术,时分服用技术
  4. 异步:进程的处理的结果不可预知

七、操作系统发展阶段

  1. 手工操作阶段
  2. 批处理阶段,
    • 单道批处理阶段
    • 多道批处理阶段(开始出现操作系统,处理效率大幅度提升)
  3. 分时操作系统
    • 以时间片为单位轮流为各个用户服务
  4. 实时操作系统
    • 必须在时间时限内处理完事情,硬实时和软实时
  5. 网络操作系统
  6. 分布式操作系统
  7. 个人计算机操作系统

八、指令

指令:让CPU干具体的事情,CPU能识别、执行的基本命令

分类:特权指令、非特权指令

  • 特权指令
    • 运行在内核态,代码运行在内核的程序叫内核程序
  • 非特权指令
    • 运行在用户态,代码运行在用户态的程序叫应用程序

九、内核

内核是操作系统最基本最核心的部分。

实现操作系统内核功能的程序就是内核程序。

 

  • 时钟管理
  • 中断处理
  • 原语
    • 最底层,最接近硬件
    • 具有原子性
    • 包含驱动
    • 运行时间较短、调用频繁
  • 对系统资源进行管理
    • 进程管理
    • 存储器管理
    • 设备管理

 

十、中断和异常

  1. 当中断发生的时候,CPU立即进入核心态
  2. 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
  3. 对于不同的中断信号,会进行不同的处理

发生了中断意为着需要操作系统接入,开展管理工作。由于操作系统的管理工作需要使用特权指令,因此CPU要从用户态转为核心态。

中断可以使CPU从用户态切换成核心态,使操作系统获得计算的控制权。

问:核心态怎么切换成用户态?

通过执行特权指令,将程序状态字PSW标志位设置为用户态。

 

posted @ 2020-11-11 11:41  大狼崽子Lanking  阅读(171)  评论(0)    收藏  举报