[操作系统]关于进程的管理

这篇具有很好参考价值的文章主要介绍了[操作系统]关于进程的管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先注明:仍然是复习阶段,所以和课本可能有些许冲突和不同,只是图谱来自于王道考研2022操作系统,旨在快速梳理操作系统的基本知识

1.进程的定义,概念和特征:

多道程序环境下,多个程序并发执行,因此他们将会失去封闭性,不适宜于管理,所以引入了进程这种概念.

进程是程序的一次执行过程,是系统进行资源分配和调度的一个独立单位

进程是一个动态的过程,代表的是进程实体的运行,其中进行实体是静态的

(1)进程实体可以分为三部分:

1.PCB(进程控制块):系统通过进程控制块来感知进程的存在,进程的存在和删除也是对应PCB的创建和删除,这是一个数据结构,里面有描述进程基本的运行情况以及运行状态,是进程存在的唯一标志

2.程序段:也就是代码部分,同一段代码可以创建多个进程

3.数据段:就是进程在运行规程中所需要的数据

这三个部分构成了进程实体,是静态的部分

(2)进程的特征

进程具有动态性,并发,独立,异步,结构等特征

(3)进程的状态和转换

进程一共有五种状态(至少目前理解为五种,在一些考研书上是七种....)

分别为:

1.创建态:进程刚开始创建的时候是这个状态

2.就绪态:进程在等待处理机资源的时候是这个状态

3.运行态:运行态是进程在处理机中执行任务

4.阻塞态:当进程需要某种io或者资源而暂时获取不到的时候,进程会暂时进入阻塞状态

5.结束态:当进程执行完毕,或者出现了异常,则进入结束状

他们的转化关系如下所示

[操作系统]关于进程的管理

 (注意一个可能会考的点,就是运行态到阻塞态是进程主动变化的,阻塞到就绪时被动的)


(4)关于进程的控制
进程控制主要包括进程的创建,终止阻塞唤醒,切换

在操作系统中,一般吧进程控制用的程序段称之为原语,原语的特点就是执行期间不许中断

调度指的是判断资源分配给哪个进程,是一种决策

执行是将资源分配给进程,是一种动作

(5)进程的通信:

进程的通信一共有三种方式

其实是有四种,因为通过PV传递信号量也是一种方式,但是相对来说比较低级

1.共享文件:指的是一片共享的文件空间,是同互斥工具,让每个进程都能访问到这个片其余,有数据结构和存储区两种实现方式

2.消息传递:使用操作系统一工地消息传递方法,在进程之间传递信息.有两种实现方式:第一种是直接发送信息,信息会挂载到收信者的消息缓冲队列下方.第二种简介通信,发送进程把消息发送到某个中间实体上.

3.管道:管道是一种单向的,互斥的结构,可以从一边读取,从另一边填入

当管道为空的时候,才可以向管道内填入数据,否则会发生阻塞

管道为满的时候,才能从管道向外读取数据,否则也会发生阻塞

2.关于线程

(1)线程的基本概念

引入线程的目的是未来减少程序在并发时候付出的开销,提高操作系统的并发性能.可以理解为一个轻量级的进程,同一个进程内的线程切换,是不需要修改上下文,也不需要修改资源

在传统的操作系统中,进程是资源调度和分配的基本单位.而在引入线程的操作系统中,线程是调度的基本单位,进程是调度的基本单位

 线程几乎不拥有系统资源,但是可以访问所在进程的资源.线程之间可以并发进行,增加了吞吐量

(2)线程的实现方式:

线程有两种实现方式:

1.用户级线程,线程的管理都由应用陈鼓型实现,操作系统不知道这种线程的存在

2.内核级线程,线程的管理由内核完成,应用程序只有一个到达内核的接口,不能直接操作内核级线程,每个内核级别线程与应用程序的一个线程相关联

(多线程模型详见课本)

3.处理机调度

(1)处理机调度的概念:

进程数量一般远大于处理机数目,就要按一定的算法,将处理机资源分配给就绪队列中的进程,实现程序的并发执行

(2)调度的层次(不单是进程)

1.作业调度/高级调度:指的是把要执行的作业从外存拉到内存中

2.内存调度/中级调度:如果在内存中有的任务暂时无法执行,就要放回内存.同样,如果外存中有任务能执行了,就调回内存   此外在这个过程中PCB一直驻留在内存中等待变化

3.进程调度/低级调度:指的是在就绪队列中按照某种顺序和算法给进程分配处理机

另外补充三种不能进行进程调度的情况

在处理终端的过程中,不能进行进程的调度和切换

还有进程在操作系统内核临界区代码段,以及进行其他需要屏蔽中断的原子操作中,都不能进行切换进程和调度

(3)进程调度的方式

进程调度和切换无非就是两种方式

1.非抢夺式调度:就算现在有一个紧急任务需要处理机,但是现在处理机仍然先执行完正在执行的任务,也就是说,当前的进程只能主动终止

举例:程序运行成功自动退出,或者io操作阻塞

2.抢夺式调度:紧急任务可以剥夺处理机,也就是说当前的进程可以被强行打断

举例:时间片用完,更高优先级进行剥夺

(4)几种经典的调度算法:

1.先来先服务(FCFS)

先来先服务,顾名思义就是一个先进先出的队列,会按照顺序执行进程

2.短作业优先(SJF)

短作业优先算法会在就绪队列中寻找运行时间最短的进行执行

3.优先级调度(PP)

给进程设置优先级,会根据优先级进行执行

4.时间片轮转(LU)

分配时间片,如果任务小于时间片,则会退化为先来先服务算法

4.关于进程同步

(1)进程同步的相关概念

多道程序环境下进程是并发执行的,但是会出现一些问题

1.临界资源:临界资源指的是那些被不允许并行访问的资源,一次只能被一个进程使用,对于这些资源的访问必须互斥进行

2.临界区:临界区指的是访问临界资源的那部分代码

正常来说,如果想要访问临界资源,需要分为四个部分

进入区(判断能否进入临界区,并且设置标识)
临界区(访问临界资源的代码)
退出区(恢复标识)
剩余区(代码的其他部分)

(2)关于信号量

信号量机制是哟中用来解决同步和互斥的方法

使用两个原语wait(P)和signal(P),来对信号量进行+1和-1的操作,(也被称为P操作和V操作)

这两个原语也会在适当的时候发生阻塞

(3)关于管程和条件变量

除了信号量机制以外,管程也能用来处理同步和互斥方法

管程会把共享资源和访问这些资源的方法封装在一起,好像类一样,同一个时间内只允许一个进程进入管程完成操作,这个互斥机制是编译器实现的

如果某个进程不释放管程,则其他进程无法进入管程的捏,并且会被阻塞,阻塞的进程会放在一个队列中,这个队列就会被称作条件变量,根据不同的阻塞原因设置多个条件变量

如果对应条件满足,就会从某个条件变量中唤醒

5.关于死锁

死锁最简单的定义就是:资源的竞争,导致了死循环

死锁产生有四种必要条件,也是四个现象

(1)互斥:被争抢的资源无法共享

(2)不剥夺:无法通过剥夺来抢占资源

(3)保持并请求:死锁的进程自身抱有至少一个资源,并且还在试图获取别的资源

(4)循环等待:存在一个循环等待资源链,链中每个进程获得的资源都被其他进程请求

(另外注意,即使构成了循环等待链,也不一定是死锁,因为其他的进程(不在链中的)可能释放某个必要资源)

(2)处理死锁

1.死锁的预防

死锁的预防指的就是破坏上面四种情况:

(1)可以通过某些技术让资源能共享

(2)破解不剥夺有两种思路:第一种是如果一个进程进入死锁,就把被请求的资源全都吐出来.第二种是在操作系统的协助下,从别的进程身上剥夺资源

(3)保持并请求的破解方法为静态分配,在进程开始阶段就分配全部所需的进程,否则不运行

(4)循环的破解方法为给资源编号,进程只能按顺序请求资源,这个样可以保证已经被获取的资源不能被再次请求

2.死锁的避免

首先要说明一个概念:不安全队列

所谓不安全队列,其实指的是进程的推进顺序,如果某个推进顺序导致了资源分配不够而死锁,这个就算不安全队列.我们要避免进入不安全队列,防止死锁的发生

如果队列安全,则死锁一定可以避免.如果队列不安全其实也不一定死锁,因为其他进程可能会释放一些资源

银行家算法根本不会,笑死了文章来源地址https://www.toymoban.com/news/detail-486558.html

到了这里,关于[操作系统]关于进程的管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 操作系统(第二章-进程管理)

    目录 一、程序执行 1. 前趋图  2. 程序的顺序执行  3. 程序的并发执行  二、进程的描述      (一)、进程的概念  1. 进程的定义  2. 进程的特征      (二)、进程的状态极其转换  1. 进程的三种基本状态 (1)就绪状态  (2)运行状态 (3)等待状态 2. 进程状态的转换

    2024年01月22日
    浏览(53)
  • 软考学习笔记--操作系统-进程管理

    进程管理是一个具有独立功能的程序关于数据集合的一次可以并发执行的运行活动,是系统进行资源分配和调度的基本单位。相对于程序,进程是动态的概念,而程序是静态的概念,是指令的集合。进程具有动态性和并发性,需要一定的资源来完成任务。在大多数操作系统中

    2024年01月18日
    浏览(51)
  • 操作系统实验——进程管理的算法实现

    笔者在大学下属的事业单位上班,最近去帮着带下操作系统的实验课,这里随手水点参考代码,欢迎各位领导老师莅临指正 编写一个简单的进程调度器 进程控制块(PCB)的定义与管理 进程调度算法的实现 进程创建、销毁和切换 给定一批进程对比3-4种调度算法的时间(自选

    2024年02月06日
    浏览(46)
  • 软考:中级软件设计师:操作系统,进程管理,前趋图,进程同步互斥,PV操作,

    提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 (1)自己的科研经历, 科研内容 ,学习的相关领域知识,要熟悉熟透了 (2)自己的实习经历,做了 什

    2024年02月12日
    浏览(53)
  • 操作系统课程设计(作业调度、内存管理、进程调度、进程阻塞等)

    资源下载: https://download.csdn.net/download/fufuyfu/85811450 操作系统是计算机系统配置的基本软件之一。它在整个计算机系统软件中占有中心地位。其作用是对计算机系统进行统一的调度和管理,提供各种强有力的系统服务,为用户创造既灵活又方便的使用环境。本课程是计算机及

    2024年02月03日
    浏览(51)
  • Linux操作系统-06-进程与服务管理

    使用ps命令查看进程。包括过滤进程信息 使用systemctl命令管理和运行Linux服务 进程(Process):操作系统正在运行的应用程序。任意一个进程,都会消耗CPU和内存资源, 服务(Service):通过服务控制面板直接启动的应用程序,也可能是操作系统启动时自启动的后台应用程序。

    2024年03月12日
    浏览(50)
  • 【JavaEE】简单了解操作系统、进程&内存管理

    目录 前言:  一、操作系统: 操作系统的定位: 应用程序: 系统调用: 操作系统内核: 驱动程序: 硬件设备:  二、进程:  什么是进程?  进程的描述与组织:  描述: 组织: PCB中的 特征(属性) CPU分配——进程调度:  进程调度的相关属性:  三、内存管理:

    2024年02月03日
    浏览(39)
  • 二、操作系统进程管理(10)——用信号量机制实现进程互斥、同步、前驱关系

        (1)分析并发进程的关键活动,划定临界区。(如对临界区资源打印机的访问就应放在临界区)     (2)设置互斥信号量mutex,初值为1。     (3)在临界区之前执行P(mutex)。      //即使用资源前先申请(P操作)     (4)在临界区之后执行V(mutex)。     (5)对不

    2023年04月08日
    浏览(42)
  • 【Linux操作系统】深入探索Linux进程:创建、共享与管理

    进程的创建是Linux系统编程中的重要概念之一。在本节中,我们将介绍进程的创建、获取进程ID和父进程ID、进程共享、exec函数族、wait和waitpid等相关内容。 在Linux系统中,进程的创建使用 fork() 系统调用。 fork() 系统调用会创建一个与当前进程相同的子进程,子进程会复制父进

    2024年02月12日
    浏览(56)
  • 【Linux操作系统】探秘Linux奥秘:进程与任务管理的解密与实战

    🌈个人主页: Sarapines Programmer 🔥 系列专栏: 《操作系统实验室》 🔖诗赋清音:柳垂轻絮拂人衣,心随风舞梦飞。 山川湖海皆可涉,勇者征途逐星辉。 目录 🪐1 初识Linux OS 🪐2 进程与任务管理的解密与实战 🌍1. 实验目的 🌍2. 实验准备 🌍3. 实验内容 🌍4. 实验心得 📝

    2024年02月03日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包