计算机基础知识——操作系统(二):进程

来源:互联网 发布:ubuntu用u盘安装 编辑:程序博客网 时间:2024/05/21 17:19

我们运行一个程序,操作系统就会帮我们创建一个进程来让CPU执行这个程序。
也可以这样理解,运行一个程序,操作系统会在开辟一片内存空间,CPU在这片内存空间执行此程序,这片内存空间其他的普通进程不能访问。
所以,进程是操作系统分配内存的基本单位

一、进程描述

  • 进程管理模块:操作系统的进程管理模块,负责创建进程、为进程加载程序、分配空间、调度进程执行程序、进程之间通信等。

系统运行时,会有很多进程产生,每个进程在执行过程中需要一些资源,这些资源是进程共享的,所以需要操作系统的进程管理模块来进行管理。

  • 进程定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

进程的组成:

  1. 独立的内存空间:存放程序运行是的数据
  2. 可运行的程序:程序运行结束了,进程也就释放了
  3. 栈空间:函数执行的内存模型,可保存函数调用时的现场
  4. 系统资源:操作系统分配给进程的资源

进程是操作系统中最基本、重要的概念,所有多道程序设计操作系统都建立在进程的基础上。

  • 进程控制块(PCB):操作系统要管理进程,就需要管理进程的信息,进程的信息就存储在进程控制块中。

二、进程的状态

进程表示了程序的执行环境和过程,既然是一个过程,就有不同的状态。

  • 进程创建:操作系统通过系统调用创建进程
  • 就绪:进程已经获得了除CPU以外的所有资源,就等待CPU来执行了
  • 执行:一个进程在CPU上执行
  • 阻塞:进程因某原因暂停执行并且释放CPU,如,等待某资源
  • 进程终止:释放进程所占用的资源,比如,内存空间

如下图,是进程各个状态之间的转换过程
注意从一个状态到另一个状态的条件
这里写图片描述

  • 进程的挂起:一个进程因为某些原因而挂起了,会把这个进程从内存中移出来,保存在辅存中,进而更有效的利用内存去执行其他的进程。
    只有在阻塞态的进程才能被挂起。

三、进程调度

进程调度就是选择进程调度到CPU上运行。
因为CPU是计算机最重要的资源,所以合理地选择进程占用CPU是很重要的任务。
进程调度有两种基本方式:

  • 非剥夺式
    进程分配到CPU后会一直运行下去,直到进程完成或者阻塞。
  • 剥夺式
    进程在CPU上运行时可以通过某种约定而被取代,这种约定可以是优先级别,还有时间片原则。

四、进程调度算法

  • 先来先服务(FCFS)
    按照进程就绪队列的先后次序进行选择
  • 优先级调度
    高优先级的进程优先选择
  • 时间片轮转
    进程运行时最多占用一个时间片的时间
  • 短进程优先
    先运行运行时间短的进程

五、线程

一个进程运行的时候,如果只能线性顺序地执行程序,速度就太慢了,所以就有了线程。
在一个进程中可以包含多个并发执行的线程,线程又共享进程中所分配的内存。当然,一个进程最少包含一个线程。
所以线程是CPU运行程序的单位,进程是系统分配内存资源的单位。

进程与线程的一个简单解释

0 0
原创粉丝点击