操做系统--进程、线程

1、进程

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

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

总之,进程包含了正在运行的一个程序的全部状态信息数据结构

一、进程与程序之间的联系

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

二、进程和程序的区别

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

三、进程的特色

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

四、进程控制块

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

进程建立:为该进程生成一个PCB
进程终止:回收它的PCB
进程的组织管理:经过对PCB的组织管理来实现
PCB包含如下内容:操作系统

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

五、进程的生命期管理

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

其中重点说下进程等待线程

在如下状况会发生进程等待
(1)请求并等待系统服务,没法立刻完成
(2)启动某种操做,没法立刻完成
(3)须要的数据没有到达

注意:进程只能本身阻塞本身。由于只有进程自身才晓得本身何时须要等待什么。code

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

六、进程的三种基本状态

在这里插入图片描述

七、进程挂起

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

2、线程

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

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

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

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

3、上下文切换

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

切换注意事项:

  • 必须在切换以前存储许多部分的进程上下文
  • 必须可以在以后恢复它们,因此进程不能显示它曾经被暂停过
  • 切换必须快速
相关文章
相关标签/搜索