操作系统--进程、线程

一、进程

定义:进程就是一个具有独立功能的程序在数据集合上的一次动态执行的过程
组成:

  • 程序的代码
  • 程序处理的数据
  • 程序计数器的值,指示下一条将运行的指令
  • 一组通用的寄存器的当前值,堆、栈
  • 一组系统资源(如打开的文件)

总之,进程包含了正在运行的一个程序的所有状态信息

1、进程与程序之间的联系:

  • 程序是产生进程的基础
  • 程序的每次运行产生不同进程
  • 进程是程序功能的体现
  • 通过多次执行,一个程序可以对应多个进程,通过调用关系,一个进程可包括多个程序

2、进程和程序的区别:

  • 进程是动态的,程序是静态的,程序是有序代码的集合,进程是程序的执行,进程有内核态和用户态
    通过系统调用就进入了内核态!
  • 进程是暂时的,程序是永久的;进程是一个变化过程,程序可以长久保存
  • 进程和程序的组成不同,进程是由程序、数据、程序控制块组成。

3、进程的特点

动态性:可动态地创建、结束进程
并发性:进程可以被独立调度并占用处理机运行
独立性:不同进程的工作互不影响
制约性:因访问共享数据/资源或进程间同步而产生的制约

4、进程控制块

描述进程的数据结构:进程控制块
操作系统为每个进程都维护了一个PCB,它是操作系统管理控制进程运行所用的信息集合。
PCB可以描述进程的基本情况以及运行变化的过程。

进程创建:为该进程生成一个PCB
进程终止:回收它的PCB
进程的组织管理:通过对PCB的组织管理来实现
PCB包含以下内容:

  • 进程标似信息
  • 处理机状态信息保存区
  • 进程控制信息
    在这里插入图片描述

5、进程的生命期管理

进程创建
进程就绪
进程运行
进程等待(阻塞)
进程唤醒
进程结束

其中重点说下进程等待

在以下情况会发生进程等待
(1)请求并等待系统服务,无法马上完成
(2)启动某种操作,无法马上完成
(3)需要的数据没有到达

注意:进程只能自己阻塞自己。因为只有进程自身才晓得自己什么时候需要等待什么。

进入阻塞状态的程序,等待到了自己要的数据,会进行进程唤醒,这个操作可能是操作系统也可能是进程做。唤醒后进入就绪队列,等待被调度占用处理机运行。

6、进程的三种基本状态

在这里插入图片描述

7、进程挂起

我们先前学习了虚拟存储器管理,我们之前说一段程序,先分配给它一个连续的逻辑地址空间,这段程序其实就是进程,进程需要访问物理内存,在内存不够时可以进行换入换出的操作。当把一个进程所对应的占用的物理内存释放并将内容换出到硬盘就叫做挂起状态
这个分为两种
阻塞挂起状态:进程在外存并等待某事件的出现
就绪挂起状态:进程在外存,但只要进入内存,即可运行
在这里插入图片描述

二、线程

进程是资源分配的单位,线程是cpu的调度单位
线程优点:

  • 一个进程中可以同时存在多个线程
  • 各个线程之间可以并发的执行
  • 各个线程之间可以共享地址空间和文件资源等

线程缺点:
一个线程崩溃,会导致其所属进程的所有线程崩溃。
在这里插入图片描述
线程实现:

  • 用户线程
  • 内核线程
  • 轻量级线程

三、上下文切换

停止当前运行进程(从运行状态改变成其他状态),并且调度其他进程(转变为运行状态)
上下文切换也就是进程切换。
一个进程不可能一直占用CPU运行,当时间片到,就会让其他进程占用CPU运行,这个就是上下文切换

切换注意事项:

  • 必须在切换之前存储许多部分的进程上下文
  • 必须能够在之后恢复它们,所以进程不能显示它曾经被暂停过
  • 切换必须快速
原创文章 209 获赞 153 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_44571270/article/details/105728141