操作系统进程管理

进程概述

        进程(porcess)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是操作系统结构的基础,是指计算机中一致性的程序

  • 进程资源分配的单位,每个进程都有独立的内存空间和资源;它适合独立的、隔离的任务。
  • 线程程序执行的最小单位,同一进程内的多个线程共享资源;它适合高效执行和并发任务

进程引入原因

        理论角度:是对正在运行的程序过程的抽象

        实现角度:是一种数据结构,目的在于清晰地刻画动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序

        动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的

        并发性:任何进程都可以同其他进程一起并发执行

        独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位

        异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进

        结构特征:PCB(进程控制):保存进程运行期间相关的数据,是进程存在的唯一标志;

                        程序段:能被进程调度到CPU的代码;

                        数据段:存放数据

进程的状态

        运行态:进程正在占用CPU

        就绪态:进程已处于准备运行的状态,即进程获得了除处理机之外的一切所需资源,一旦得到处理机即可运行

        阻塞态:进程由于等待某一事件不能享用CPU

        创建状态:进程正在被创建

        结束状态:进程正在从系统消失

处理机调度

        是对处理机进行分配,即从就绪队列中按照定的算法(公平、高效)选择一个进程并将处理机分配给他运行,以实现进程并发地执行

        分类:

                高级调度(作用调度)

                中级调度(内存置换)

                低级调度(进程调度)

        调度方式:剥夺式、非剥夺式

        调度准则:CPU利用率、系统吞吐量、周转时间、等待时间、响应时间

*吞吐量 = 完成的任务数 / 单位时间

处理机调度算法

        先来先服务(FCFS):先来的先调度

        短作业优先(SJF):优点调度要求运行时间最短的作业

        优先级调度算法:优先级高者先调度

        高相应比优先调度算法时间片轮转(HRN)

        多级反馈队列调度算法

进程同步

原因

        协调进程之间的相互制约关系

制约关系

        进程同步也是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们的合作

        互斥:间接制约关系。当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另一个进程才允许去访问此临界资源

临界资源

        一次仅允许一个进程使用的资源

临界区

        在每个进程中访问临界资源的那段程序,当多个线程并发执行时,如果他们都能访问和修改同一资源,就可能导致数据的不一致性和程序的错误行为。为了避免这种情况,临界区通过限制同时执行改段代码的进程数量,来确保对共享资源的访问是互斥的

临界区的作用

        保护共享资源:通过互斥访问机制,确保在任一时刻只有一个进程能够访问和修改共享资源,从而保护资源的一致性和完整性

        防止竞态条件:竞态条件是指多个进程同时访问共享资源时,由于执行顺序的不确定性而导致程序结果不可预测的情况。临界区通过确保同一时间只有一个进程执行,从而避免了竞态条件的发生

        提高程序的稳定性:通过合理设置临界区,可以减少并发程序中的错误和异常,提高程序的稳定性和可靠性

        临界区的实现通常依赖于同步机制,如互斥锁、信号量或条件变量

        互斥锁(Mutex):互斥锁是最常用的同步机制之一。当一个进程进入临界区时,他会释放互斥锁。其他进程在尝试进入临界区时,如果互斥锁已被占用,则会被阻塞,直到互斥锁被释放

        信号量(Semaphore):信号量是一种更通用的同步机制,它可以用来控制多个进程对多个资源的访问。在临界区场景中,信号量可以被设置成1,以模拟互斥锁的行为

        条件变量(Condition Variable):条件变量通常与互斥锁一起使用,用于在多个线程之间传递信号。虽然条件变量本身不直接用于实现临界区,但它可以在线程等待进入临界区时提供有效的等待和唤醒机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值