【操作系统】6.进程是怎么运行的?

本文详细解析了进程的基本状态、进程控制中的原语操作,以及处理机调度的原理、算法(如FCFS、SJF、HRRN等)和其在不同场景下的优缺点。重点介绍了进程调度的层次、时机和指标,为IT专业人士提供了全面的进程管理知识。
摘要由CSDN通过智能技术生成

2.进程是怎么运行的?

2.1 进程的状态

进程的状态
三种基本状态
就绪(Ready)
执行(Running)
阻塞(Blocked)

在这里插入图片描述

创建和终止状态
创建(New)
终止(Terminated)

在这里插入图片描述

2.2 进程控制

即OS对进程实现有效的管理,包括创建新进程、撤销已有进程、挂起、阻塞和唤醒、进程切换等多种操作。OS通过原语(Primitive)操作实现进程控制。

原语的概念:
由若干条指令组成,完成特定的功能,是一种原子操作(Action Operation)

原语的特点:
原子操作,要么全做,要么全不做,执行过程不会被中断
在管态/系统态/内核态下执行,常驻内存
是内核三大支撑功能(中断处理/时钟管理/原语操作)之一

创建原语:create
阻塞原语:block
唤醒原语:wakeup
撤销原语:destroy

进程控制:挂起与激活

为了系统和用户观察和分析进程

挂起原语: suspend
静止就绪:放外存,不调度
静止阻塞:等待事件

激活原语:active
活动就绪:等待调度
活动阻塞:等待唤醒
在这里插入图片描述

2.3 进程调度

根据一定的算法和原则将处理机资源进行重新分配的过程。

前提:作业/进程数远远大于处理机数

目的:提高资源利用率,减少处理机空闲时间

调度程序:一方面要满足特定系统用户的需求(快速响应),另一方面要考虑系统整体效率(系统平均周转时间)和调度算法本身的开销

2.3.1 处理机调度:调度的层次

高级调度/作业调度
把后备作业调入内存
只调入一次,调出一次

中级调度/内存调度
将进程调至外存,条件合适再调入内存
在内、外存对换区进行进程对换

低级调度/进程调度
从就绪队列选取进程分配给处理机
最基本的调度,频率非常高(相当于一个时间片完成)

在这里插入图片描述

2.3.2 处理机调度:调度方式

剥夺式/抢占式调度
立即暂停当前进程
分配处理机给另一个进程
原则:优先权/短进程优先/时间片原则

非剥夺/非抢占式调度
若有进程请求执行
等待直到当前进程完成或阻塞
缺点:适用于批处理系统,不适用分时/实时系统

2.3.3 处理机调度:调度时机

进程运行完毕
进程时间片用完
进程要求I/O操作
执行某种原语操作
高优先级进程申请运行(剥夺式调度)

2.3.4 处理机调度:调度过程

保存镜像:记录进程现场信息
调度算法:确定分配处理机的原则
进程切换:分配处理机给其它进程
处理机回收:从进程收回处理机

2.3.5 进程调度:调度算法指标

CPU利用率 = 忙碌时间/总时间

系统吞吐量 = 完成作业数/总时间

周转时间 = 作业完成时间-提交时间
带权周转时间 = 周转时间/实际运行时间

等待时间 = 作业等待处理机调度时间
关注平均值

响应时间 = 提交请求到首次响应间隔

2.4 处理机调度:调度算法

先来先服务(FCFS,First Come First Served)
短作业优先(SJF,Shortest Job First)
高响应比优先调度(HRRN,Highest Response Ratio Next)
优先级调度(PSA,Priority-Scheduling Algorithm)
时间片轮转调度(RR,Round-Robin)
多级反馈队列调度(MFQ,Multileveled Feedback Queue)

2.4.1 进程调度:先来先服务(FCFS,First Come First Served)

算法内容:调度作业/就绪队列中最先入队者,等待操作完成或阻塞
算法原则:按作业/进程到达顺序服务(执行)
调度方式:非抢占式调度
适用场景:作业/进程调度
优缺点:
有利于CPU繁忙型作业,充分利用CPU资源
不利于I/O繁忙型作业,操作耗时,其它饥饿

在这里插入图片描述

2.4.2 进程调度:短作业优先(SJF,Shortest Job First )

算法内容:所需服务时间最短的作业/进程优先服务(执行)
算法原则:追求最少的平均(带权)周转时间
调度方式:SJF/SPF非抢占式
适用场景:作业/进程调度
优缺点:
平均等待/周转时间最少
长作业周转时间会增加或饥饿
估计时间不准确,不能保证紧迫任务及时处理
在这里插入图片描述

2.4.3 进程调度:高响应比优先调度(HRRN,Highest Response Ratio Next)

算法内容:结合FCFS和SJF,综合考虑等待时间和服务时间计算响应比,高的优先调度
算法原则:综合考虑作业/进程的等待时间和服务时间
调度方式:非抢占式
适用场景:作业/进程调度
响应比计算:
响应比=(等待时间+服务时间)/服务时间, ≥1
只有当前进程放弃执行权(完成/阻塞)时,重新计算所有进程响应比
长作业等待越久响应比越高,更容易获得处理机
在这里插入图片描述

2.4.4 进程调度:优先级调度(PSA,Priority-Scheduling Algorithm)

算法内容:又叫优先权调度,按作业/进程的优先级(紧迫程度)进行调度
算法原则:优先级最高(最紧迫)的作业/进程先调度
调度方式:抢占/非抢占式(并不能获得及时执行)
适用场景:作业/进程调度
优先级设置原则:
静态/动态优先级
系统>用户;交互型>非交互型;I/O型>计算型
低优先级进程可能会产生“饥饿”
在这里插入图片描述

2.4.5 进程调度:时间片轮转调度(RR,Round-Robin)

算法内容:按进程到达就绪队列的顺序,轮流分配一个时间片去执行,时间用完则剥夺
算法原则:公平、轮流为每个进程服务,进程在一定时间内都能得到响应
调度方式:抢占式,由时钟中断确定时间到
适用场景:进程调度
优缺点:
公平,响应快,适用于分时系统
时间片决定因素:系统响应时间、就绪队列进程数量、系统处理能力
时间片太大,相当于FCFS;太小,处理机切换频繁,开销增大
在这里插入图片描述

2.4.6 进程调度:多级反馈队列调度(MFQ,Multileveled Feedback Queue)

算法内容:
设置多个按优先级排序的就绪队列
优先级从高到底,时间片从小到大
新进程采用队列降级法
进入第一级队列,按FCFS分时间片
没有执行完,移到第二级,第三级。。。
前面队列不为空,不执行后续队列进程

算法原则:集前几种算法优点,相当于PSA+RR
调度方式:抢占式
适用场景:进程调度
优缺点:
对各类型相对公平;快速响应;
终端型作业用户:短作业优先
批处理作业用户:周转时间短
长批处理作业用户:在前几个队列部分执行
在这里插入图片描述

小结:进程是怎么运行的?

在这里插入图片描述

在这里插入图片描述

  • 49
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
31. 在Linux系统下,发送信号的命令是kill。在C语言中,可以使用kill函数来发送信号。 32. pid_t fork() 的返回值为新进程进程ID,如果返回值为0,则表示当前进程为子进程;如果返回值大于0,则表示当前进程为父进程,返回值即为子进程进程ID;如果返回值为-1,则表示创建子进程失败。 33. 系统调用是通过操作系统提供的接口直接调用内核功能的一种编程方式,而库函数则是在用户空间中运行的函数库,通过调用库函数来实现对系统功能的访问。 34. C/S架构指的是客户端/服务器架构,其中客户端和服务器通过网络进行通信,客户端向服务器发起请求,服务器处理请求并返回结果给客户端。 35. sprintf函数是C语言中的字符串格式化函数,用于将格式化后的字符串输出到指定的缓冲区中。 36. 进程的创建可以通过fork函数来实现,进程间通信的机制包括管道、共享内存、消息队列、信号量等。 37. 线程的创建可以通过pthread_create函数来实现,线程间通信的机制包括互斥锁、条件变量、信号量等。 38. 如果a可能为负数,则应该定义为有符号类型。 39. 可以使用wait或waitpid函数来让父进程等待子进程结束并获取子进程的退出状态。 40. 使用管道和共享内存时,需要先创建相应的管道或共享内存,然后通过读写操作来进行进程间通信。 41. 进程关闭后,管道或共享内存仍然存在,但是不能再进行读写操作。 42. 僵尸进程是指已经结束但是父进程还没有处理其退出状态的进程。在父进程没有使用wait或waitpid等函数来处理子进程退出状态时,子进程就会变成僵尸进程。 43. 解决僵尸进程的方法包括使用wait或waitpid函数等待子进程退出并获取其退出状态,或者使用信号处理函数来处理SIGCHLD信号。 44. 进程是系统中正在运行的程序的实例,拥有独立的内存空间和资源。线程是进程中的执行单元,多个线程共享同一进程的资源,可以提高程序的并发性和效率。 45. 进程间的通信方式包括管道、共享内存、消息队列、信号量等。 46. 同步是指协调多个进程或线程的执行顺序,保证它们按照一定的顺序执行。互斥是指在同一时间只有一个进程或线程可以访问共享资源,其他进程或线程需要等待该进程或线程释放资源后才能访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A 北枝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值