• 进程

1.进程的定义
(1)一个正在执行的程序
(2)能分配给处理器并由处理器执行的程序实例
(3)一个正在计算机上执行的程序实例
(4)由一组执行的指令、一个当前状态和一组相关的系统资源表征的活动单元

2.进程的两个基本元素:
(1)程序代码:可能被执行相同程序的其他进程共享
(2)数据集:与代码相关联

3.进程执行的任意时刻,都有标识符,状态,优先级,程序计数器,内存指针,上下文数据,I/O状态信息,记账信息来表征,这些信息都存放在进程控制块PCB)中,控制块由操作系统创建和管理。
Linux -进程-
4.进程控制块是操作系统为支持多进程并提供多重处理技术的关键工具。进程中断时,操作系统会把程序计数器和处理寄存器(上下文数据)保存到进程控制块的相应位置中,进程状态相应地改为其他值。因此可以说进程是由程序代码,相关数据和进程控制块组成。

  • 进程状态

1.两状态进程模型
(1)运行态:正在执行的状态。 未运行态:没有运行的状态
(2)操作系统创建一个新进程时,将该进程以未运行态加入系统,操作系统知道这个进程后会等待执行的机会,当因某种原因,当前正在运行的进程被中断时,操作系统中的分派器部分会选择一个新进程运行,前一个进程会从运行态转换为未运行态,新进程转换为运行态。其中,未运行态必须位于某种类型的队列中等待执行时机。
Linux -进程-
2.进程的创建与终止
(1)创建:将一个新进程添加到进程集时,操作系统需要建立用于管理该进程的数据结构,并在内存中给它分配地址空间
(2)创建进程的原因:
1)新的批处理作业
2)交互登陆
3)为提供服务而由操作系统创建
4)由现有进程派生(父子进程)
(3)终止:批处理作业中应包含一个Halt指令或其他操作系统显示服务调用来终止。在有些操作系统中,进程可被创建它的进程终止,或者父进程终止时而终止。
(4)终止进程的原因:
1)正常完成
2)进程超时
3)I/O失败
4)无效或特殊指令
5)父进程终止或父进程请求

3.五状态模型
(1)五种状态:
运行态:正在执行的状态
就绪态:进程已做好准备,只要有机会就可以开始执行
阻塞/等待态:进程在某些事件发生之前不能执行,如I/O操作完成
新建态:刚刚创建的进程,还未加入到可执行进程组
退出态:操作系统从可执行进程组中释放出的进程。
(2)五种状态转换
1) 新建->就绪:操作系统准备好接纳一个新进程。
2) 就绪->运行:选择新进程运行
3) 运行->退出:进程已完成或取消
4) 运行->就绪:进程执行超时、优先级的限制(操作系统发现优先级更高的正处于阻塞态的进程)、进程自愿释放对处理器的控制(记账和维护)
5) 运行->阻塞:进程请求其必须等待的某些事件时,进入阻塞态
6) 阻塞->运行:等待的事件已发生
Linux -进程-
4.被挂起的进程
(1)挂起态:当内存中所以进程都处于阻塞态时,也就是说内存中不存在就绪态进程时,操作系统就将被阻塞的进程放到磁盘中的挂起队列,置为挂起态。此时内存所释放的空间就可被调入的另一个进程使用
Linux -进程-
(2)就绪态:进程已在内存中并可以执行
阻塞态:进程已在内存中并等待一个事件
阻塞/挂起态:进程已在外存中并等待一个事件
就绪/挂起态:进程已在外存中,但只要载入内存就可执行
Linux -进程-
(3)进程挂起的原因:
1)交换->操作系统需要释放足够的内存空间
2)其他OS请求
3)交互式用户请求
4)定时
5)父进程请求

  • 进程描述

操作系统控制计算机系统内部的事件,为处理器执行进程进行调度和分派,给进程分配资源,并响应用户程序的基本服务请求。可以把操作系统视为管理系统资源的实体。
Linux -进程-
1.操作系统的控制结构
(1)操作系统为了管理进程和资源,必须掌握每个进程和资源的当前状态。操作系统维护的4种不同类型的表:内存、I/O、文件和进程
(2)内存表:用于跟踪内存和外存。
I/O表:管理计算机系统中的I/O设备和通道
文件表:提供关于文件是否存在、文件在外存中的位置、当前状态和其他属性信息
(3)内存、I/O、文件是代表进程而被管理的,因此进程表中必须有对这些资源的直接或间接引用。

2.进程控制结构
(1)操作系统在管理和控制进程是,首先要知道进程的位置,其次要知道进程的属性。
(2)属性集称为进程控制块。 程序、数据、栈和属性的集合称为进程映像
(3)进程映像的位置取决于所用的内存管理方案。通常保存在相邻的内存块中或连续的内存块中。
(4)进程控制块的信息有:进程标识信息、进程状态信息、进程控制信息
(5)进程标识符(pid):每个进程都分配了一个唯一的数字标识符。包括:该进程的标识符(进程ID)、父进程的标识符、用户标识符。
Linux -进程-
(6)进程控制块作用进程控制块是操作系统中最重要的数据结构,每个进程控制块都包含系统所需进程的所有信息

  • 进程控制

1.执行模式
(1)非特权模式通常称为用户模式
特权模式通常称为系统模式、控制模式或内核模式
(2)操作系统内核的典型功能:
1)进程管理:进程的创建和终止、进程的调度和分派、进程切换、进程同步和进程间通信的支持、管理进程控制块
2)内存管理:为进程分配地址空间、交换、页和段管理
3)I/O管理:缓冲区管理、为进程分配I/O通道和设备
4)支持功能:中断处理、记账、监视

2.进程创建
(1)进程创建步骤
1)为新进程分配一个唯一标识的进程标识符
2)为进程分配空间
3)初始化进程控制块
4)设置正确的链接
5)创建或扩充其他数据结构

3.进程切换
(1)何时进程切换
进程切换可在操作系统从当前正在运行进程中获得控制权的任何时刻发生
(2)中断:与当前正运行进程无关的某种外部事件相关
时钟中断:正在运行进程的执行时间超过最大允许时间段
I/O中断:I/O活动是一个或多个进程正在等待的事件
内存失效:处理器遇到一个引用不在内存中的字的虚存地址时
(3)陷阱:与当前运行进程产生的错误或异常条件相关
(4)出现中断时,处理器会做如下工作
1)将程序计数器置为中断处理程序的开始地址
2)从用户模式切换到内核模式,以便中断处理代码包含特权指令
(5)进程切换步骤
1)保存处理器的上下文,包括程序计数器和其他寄存器
2)更新当前处于运行态进程的进程控制块
3)把该进程的进程控制块移到相应的队列
4)选择另一个进程执行
5)更新所选进程的进程控制块
6)更新内存管理数据结构。
7)载入程序计数器和其他寄存器的值

  • UNIX中的进程

1.UNIX中的进程创建是由内核系统调用**fork()**实现的。

2.创建过程:
(1)在进程表中为新进程分配一个空项
(2)为子进程分配一个唯一进程标识符
(3)复制父进程的进程映像,共享内存除外
(4)增加父进程所拥有文件的计数器,反映另一个进程现在也拥有这些文件的事实
(5)将子进程置为就绪态
(6)将子进程的ID返回给父进程,将0值返回给子进程

相关文章:

  • 2021-06-07
  • 2021-09-02
  • 2021-11-23
  • 2021-06-09
猜你喜欢
  • 2021-12-14
  • 2021-05-03
  • 2021-11-16
相关资源
相似解决方案