初识 操作系统与进程

文章目录

  • 冯诺依曼体系系统
  • 操作系统
    • 概念
    • OS定位
    • 设计OS的目的
  • 进程
    • 查看进程
    • 进程和程序的区别
    • 操作系统管理进程
      • 时间片轮转机制
      • 并行和并发
      • 内核态和用户态
      • 上下文
      • 进程状态
      • 优先级

冯诺依曼体系系统

初识 操作系统与进程_第1张图片

截至目前,我们所认识的计算机,都是有一个个的硬件组件组成

- 输入单元:包括键盘,鼠标,扫描仪,写板等
- 中央处理器(CPU):含有运算器和控制器等
- 输出单元:显示器,打印机等

关于冯诺依曼,必须强调几点:

- 这里的存储器指的是内存
- 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
- 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。

一句话,所有设备都只能直接和内存打交道

操作系统

概念

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:

  • 内核(进程管理,内存管理,文件管理,驱动管理)
  • 其他程序(例如函数库,shell程序等等)

在整个计算机软硬件架构中,操作系统是一个高效管理的软件:管理计算机上的软硬件资源

OS定位

初识 操作系统与进程_第2张图片可以得出:

  1. 管理者的任务种类分两种:硬件管理软件管理
  2. 按照目标对象分两种:一种对内的管理,一种对外业务进行管理

设计OS的目的

  • 与硬件交互,管理所有的软硬件资源(对内且对下)
  • 为用户程序(应用程序)提供一个良好的执行环境(对外且对上)
    初识 操作系统与进程_第3张图片

进程

对于一个操作系统来说,一个任务就是一个进程。

一个程序刚开始就是一个在硬盘上的程序,加载运行时,是为了完成某些任务。而要完成任务,就需要操作系统为该任务提供足够做的资源(如内存和CPU资源),而这一整套任务的执行,就叫做进程

所以:进程是担当分配系统资源(CPU时间、内存)的实体,是具有动态特性的。

查看进程

启动任务管理器,就可以查看当前主机的所有进程了
在这里插入图片描述
这是我当前系统中的进程之一,其中 PID 是这个进程的代号

进程和程序的区别

  • 程序是静态的指令集合,可执行文件
  • 进程是一个程序动态的运行过程,需要被加载在内存中

操作系统管理进程

  1. 描述:用 task struct结构来描述进程
  2. 组成:本质就是使用双向链表把很多的 task struct 变量串起来

时间片轮转机制

操作系统的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。

时间片:任务执行的一小段时间
运行状态:任务正在执行时的状态
任务执行一段时间后强制暂停去执行下一个任务
就绪状态:被暂停的任务就处于就绪状态,等待下一个属于它的时间片的到来

这样每个任务都能得到执行

并行和并发

cpu多核(多个处理核心),每个核心都有自己的寄存器,可以调度一个程序的运行

  • 并行:多处理机的情况下,多个进程同时运行
  • 并发:单处理机的情况下,多个进程在同一时间间隔运行

注意:由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换,给人的感觉就是多个任务在“同时进行”,这也就是我们所说的并发

内核态和用户态

一般的操作系统会对执行权限进行分级:用户态和内核态

  • 内核态:操作系统作为直接控制硬件设备的底层软件,权限最高,称为内核态
  • 用户态:用户程序的权限最低

比如说:一个班级,班长自己打扫卫生、收发作业,这叫用户态;而班长把这些事情分配给其他班委,班委在忙,这对于班长来说,就是内核态

上下文

上下文简单说来就是一个环境,进程在时间片轮转切换时,由于每个进程运行环境不同,就涉及到转换前后的上下文环境的切换

  • 就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容
  • 切换时需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。

进程状态

初识 操作系统与进程_第4张图片

  • 就绪:进程处于可运行的状态,只是CPU时间片还没有轮转到该进程,则该进程处于就绪状态
  • 运行:进程处于可运行的状态,且CPU时间片轮转到该进程,该进程正在执行代码,则该进程处于运行状态
  • 阻塞:进程不具备运行条件,正在等待某个事件的完成

优先级

CPU资源分配的先后顺序,就是进程的优先级

优先级高的进程有优先执行权利
配置进程优先级对多任务环境的Linux很有用,可以改善系统性能。 把进程运行到指定的CPU上,这样就可以先执行重要的进程,可以大大改善系统整体性能

你可能感兴趣的:(Linux,操作系统,linux)