进程

进程是操作系统中具有独立功能的程序关于某个数据集合的一次运行活动,它有自己的地址空间,包括文本区域、数据区域和堆栈。进程状态包括阻塞态、就绪态和执行态,操作系统通过调度算法进行进程的管理。上下文切换发生在中断或线程调度时,涉及寄存器和特定数据的保存与加载。进程同步中,临界区和信号量是关键概念,防止并发访问资源时出现错误。死锁是多个进程因循环等待资源而无法执行的情况,银行家算法可避免死锁。进程间通信方式包括消息传递、同步、共享内存和远程过程调用。线程是独立调度和分派的基本单位,轻量级、并发执行,与进程相比,它们共享进程资源。
摘要由CSDN通过智能技术生成

进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。

进程的概念主要有两点:

进程是一个实体,每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。
进程是一个“执行中的程序”,程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。
进程的基本状态

阻塞态:等待某个事件的完成;
就绪态:等待系统分配处理器以便运行;
执行态:占有处理器正在运行。

执行态 -> 阻塞态:往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。
阻塞态 -> 就绪态:则是等待的条件已满足,只需分配到处理器后就能运行。
执行态 -> 就绪态:不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。
就绪态 -> 执行态:系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态
进程调度

上下文切换

线程/进程的上下文(以下统称为:上下文)主要包含两个部分:寄存器(尤其是 PC)和操作系统需要的特定数据(PCB)。上下文切换(context switch),是一个存储和重建 CPU 的过程,完整的上下文会涉及到这两部分的切换,旧的上下文被保存,新的上下文被加载。

当系统发生中断或者 OS 进行线程调度时会进行上下文切换。

调度种类

高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度:

高级调度:又称为作业调度,它决定把后备作业调入内存运行;
中级调度:又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。
低级调度:又称为进程调度,它决定把就绪队列的某进程获得CPU;
非抢占式调度与抢占式调度

非抢占式:分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生进程调度进程调度某事件而阻塞时,才把处理机分配给另一个进程。

抢占式:操作系统将正在运行的进程强行暂停,由调度程序将CPU分配给其他就绪进程的调度方式。

调度策略的设计

响应时间:从用户输入到产生反应的时间
周转时间:从任务开始到任务结束的时间
平均周转时间:周转总时间除以作业个数
CPU任务可以分为交互式任务和批处理任务,调度最终的目标是合理的使用CPU,使得交互式任务的响应时间尽可能短,用户不至于感到延迟,同时使得批处理任务的周转时间尽可能短,减少用户等待的时间。

调度算法

FCFS:调度的顺序就是任务到达就绪队列的顺序。对短作业不公平。

SJF:最短的作业(CPU区间长度最小)最先调度。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值