进程调度

处理器调度算法

陌路散爱 提交于 2020-01-24 13:53:33
1. P117页,练习15:最高响应比 HRRF最高响应比优先算法 2. P119页,练习22(2):时间片轮转 进程P1运行完成时,P2和P3到达就绪队列 进程P2运行完成时,P3,P1,P4依次到达就绪队列 进程P3运行完成时,P1,P4,P2依次到达就绪队列 3. 现设定采用三级反馈队列调度算法,三个队列分别为0、1和2,对应时间片为2、4、8。现有四个进程A、B、C、D,到达时刻分别为0、5、7、12,执行时间分别为7、4、13、2。请写出整个进程调度过程,包括每个时间段,执行的进程,执行后进程状态,各个队列内进程的变化。 4. 从以下几个方面比较各个调度算法的优缺点: 1.资源利用率 2.吞吐率 3.周转率 4.响应时间 5.公平性 6.适用范围 (1)先来先服务调度算法:先来先服务调度算法是一种非抢占式的算法,先进入就绪队列的进程,先分配处理机运行。一旦一个进程占有了处理机,它就一直运行下去,直到该进程完成工作或者因为等待某事件发生而不能继续运行时才释放处理机。 (2)最短作业优先算法:最短作业优先算法这是对FCFS算法的改进,其目标是减少平均周转时间。对预计执行时间短的作业(进程)优先分派处理机。通常后来的短作业不抢先正在执行的作业。 (3)最短剩余时间优先算法:这是一个剥夺式调度算法。此算法的资源利用率和吞吐率较高,周转率较快,响应时间较短,也是一个不是很公平的算法

进程和线程

你。 提交于 2020-01-24 02:50:38
1. 进程: (1)进程模型:一个进程就是一个程序的执行实例,程序是静态的,进程是动态的。一个进程有一个地址空间和一个控制线程,其中地址空间包含有:程序计数器、寄存器、变量的当前值。当一个进程被挂起时,进程的物理程序计数器值被保存在该进程的程序计数器中。下次进程运行时,再从程序计数器中取出计数值装入内存的程序计数器中。 (2)进程的创建:在unix系统中,创建新进程的方式只有一个:fork()函数,即创建一个子进程。子进程是父进程的一个副本,和父进程拥有相同的存储映像、相同的环境字符串和相同的打开文件。但是,子进程和父进程有各自不同的地址空间,不同的PID。通过系统调用execve()函数,可以替换地址空间中的程序段。( ps:子进程和父进程拥有不同的地址空间,但地址空间中的内容相同 ) (3)进程的三种状态:运行态、就绪态、阻塞态。( ps:系统调用pause()可以使进程进入阻塞态 ) (4)多进程的实现:操作系统维护着一张进程表,每个进程占用一个表项。该表项包含着进程状态的重要信息,包括:寄存器、程序计数器、堆栈指针、内存分配状况、打开文件的状态、调度信息、从运行态转为就绪态或阻塞态时所保存的信息(程序计数器值和寄存器中的相关信息)。当内核切换进程时,会将旧进程的信息装入进程表,保证下次该进程能正确启动,然后载入新进程的程序计数器和寄存器等相应信息到内存中,从而切换到新进程。

操作系统导论读书笔记—虚拟化CPU之调度

那年仲夏 提交于 2020-01-22 16:11:09
虚拟化CPU之调度 1. 底层机制 1.1 用户模式与内核模式 1.1.1 系统调用 1.1.2 用户态与内核态切换过程 1.2 进程间切换 1.2.1 协作方式:等待系统调用 1.2.2 非协作方式:操作系统控制 1.2.3 保存和恢复上下文 1.2.4 时间中断进程切换 2. 调度策略 2.1 进程调度的相关概念 2.1.1 调度的性能指标 2.1.2 IO消耗型和CPU消耗型进程 2.1.3 进程优先级 2.1.4 时间片 2.2 几种基本调度算法 2.2.1 先入先出FIFO 2.2.2 最短任务优先SJF 2.2.3 最短完成时间优先STCF 2.2.4 轮转调度RR 2.2.5 总结对比 2.3 经典调度算法 2.3.1 多级反馈队列MLFQ 2.3.2 比例份额调度 2.4 多处理器调度 2.4.1 多处理器的特性 2.4.2 单队列调度 2.4.3 多队列调度 2.4.4 linux多处理器调度 1. 底层机制 操作采用时分共享CPU的方式实现虚拟化CPU。在实现虚拟化的同时,我们要保证整体性能且不失去CPU的控制权。 1.1 用户模式与内核模式 为了防止某个任务抢夺所有资源或者影响其它任务的运行,我们需要限制进程的操作,保证操作系统的控制权。 在用户模式下,应用程序不能完全访问硬件资源。在内核模式下,操作系统可以访问机器的全部资源。并提供了内核态与用户态的切换方式

操作系统概念- Silberschatz 期末复习

我是研究僧i 提交于 2020-01-22 05:47:13
第一章——导论 1>操作系统是一组控制和管理计算机软硬件资源,合理地对各类作业进行调度,及方便用户的程序集合。 用户视角:为用户方便,不在乎资源使用率; 系统视角:资源分配器 &控制程序; 2>陷阱: 软中断,来自出错(除数为0/无效存储访问..)和用户程序的特别请求、系统调用。 中断:来自硬件。 3>os结构 ①多道程序设计 ②分时系统:操作系统将时间划分为若干时间在用户之间快速切换,这种快速切换使得用户感到整个系统只为自己所用,以时间片为单位,且因为频度高,用户可以在程序运行期间与之进行交互。 4>特权指令:特权指令是拥有特殊权限的指令,用于调用系统函数或系统软件等,因为在执行程序时,为了方式用户随意调用特权指令,系统又分成了用户态和核心态。由此延申模式位,1:用户态,0:内核模式,用于保证特权指令只能由操作系统完成,保护操作系统和用户程序不受错误用户程序的影响。 5>高速缓存一致性 6>上下文切换, CPU 从一个 进程 或线程切换到另一个进程或线程,不可以在用户态实现,而系统调用是操作系统提供的服务,用户态可以使用。 第二章——操作系统结构 1>系统调用:OS内核提供一系列的预定功能,通过一组称为系统调用的接口来呈现给编程人员,相应内核函数完成处理并返回给编程人员;它把应用程序请求传给内核,其相应内核函数完成处理并返回给程序;系统调用是内核的一部分。

进程与线程

半腔热情 提交于 2020-01-20 23:59:51
进程模型   计算机上所有可运行的软件,通常也包括操作系统,被组织成若干顺序进程,简称 进程。一个进程就是一个正在执行程序的实例。包括程序计数器、计数器和当前变量的值。     CPU在进程之间快速来回切换被称作是多道程序设计。    进程的创建     四种事件会导致进程的创建       1.系统初始化       2.正在运行的程序执行了创建进程的系统调用。       3.用户创建一个新进程。       4.一个批处理作业的初始化。   守护进程:停留在后台处理诸如电子邮件、WEB页面、新闻、打印之类活动的进程成为守护进程。      在UNIX和Windows中,进程创建之后,父进程和子进程有各自不同的地址空间    进程的终止     1.正常退出(自愿的)     2.出错退出(自愿的)     3.严重错误(非自愿)     4.被其它进程杀死(非自愿)      进程的结构层次     UNIX:树     Windows: 没有进程层次概念,所有的进程层次相同,唯一类似的是,创建子进程的时候,父进程得到一个特别的令牌(句柄),可以用来控制子进程,但它有权把句柄传给其它进程,这样就不存在进程层次,UNIX中则不能剥          夺子进程的继承权。   进程的状态           进程的实现:         操作系统维护这一张表格(一个结构数组)

处理机调度算法C++实现

岁酱吖の 提交于 2020-01-17 23:48:54
一、实验目的 在多到程序或多任务系统中,系统同时处于就绪状态的进程有若干个。也就是说能运行的进程数远远大于处理机个数。为了系统中的各进程有条不紊的运行,必须选择某种调度策略,以选择一进程占用处理机。要求学生设计一个模拟单处理机调度的算法,以巩固和加深处理机调度的概念。 二、 实验内容 处理机管理是操作系统中非常重要的部分。为深入理解进程管理部分的功能,设计几个调度算法,模拟实现处理机的调度。 FCFS(先来先服务) # include <iostream> # include <string> # define N 5 using namespace std ; int time = 0 ; int sum_turnaround_time = 0 ; class PCB { public : PCB * point ; string pname ; int run_time ; int has_run_time ; int arrive_time ; char pstate ; } ; void Pqueue ( PCB * head , int & pcount , PCB & p ) { if ( head == NULL ) { head = & p ; } else { head [ pcount - 1 ] . point = & p ; } } void run (

Python 之进程

牧云@^-^@ 提交于 2020-01-15 15:15:30
理论知识 操作系统背景知识 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。 所以想要真正了解进程,必须事先了解操作系统, 点击进入 PS:即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力。将一个单独的cpu变成多个虚拟的cpu(多道技术:时间多路复用和空间多路复用+硬件上支持隔离),没有进程的抽象,现代计算机将不复存在。 必备的理论基础: 一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理、调度进程,并且将多个进程对硬件的竞争变得有序 二 多道技术: 1.产生背景:针对单核,实现并发 ps:现在的主机一般是多核,那么每个核都会利用多道技术 有4个cpu,运行于cpu1的某个程序遇到io阻塞,会等到io结束再重新调度,且会被调度到4个cpu中的任意一个,具体由操作系统调度算法决定。 2.空间上的复用:如内存中同时有多道程序 3.时间上的复用:复用一个cpu的时间片 强调:遇到io切,占用cpu时间过长也切,核心在于切之前将进程的状态保存下来,这样才能保证下次切换回来时,能基于上次切走的位置继续运行 什么是进程 进程(Process

操作系统处理机调度相关问题

≯℡__Kan透↙ 提交于 2020-01-15 05:09:31
1.请简要描述系统三个层次调度的主要任务。 高级调度:也称为作业调度或长程调度。把外存上的作业调入内存。 中级调度:介于高级调度和低级调度之间,主要为了提高内存的利用率和系统吞吐量。 低级调度:也称进程调度。将就绪状态的进程调到CPU执行。 2.进程调度的任务是什么?请给出几种常见的进程调度算法。 将就绪队列中的进程调入CPU运行。 常见的进程调度算法: 先来先服务(FCFS)、短进程优先(SPN)、最短剩余时间优先(SRT) 最高响应比优先(HRRN)、时间片轮转程序调度算法(RR) 多级反馈队列调度算法 3.你是如何理解死锁的?请给出死锁产生的必要条件。 死锁:在一组进程中,每个进程都无限等待被该组进程中另一进程所占用的资源, 因而永远无法得到资源,这种现象就称为死锁。 产生死锁的必要条件: - 互斥使用(资源独占)一个资源每次只能给一个进程使用 - 不剥夺(不可强占)资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者资源释放 - 请求和保持(部分分配,占有申请)一个进程在申请新的资源的同时保持对原有资源的占有 - 循环等待 存在一个进程等待队列{P1,P2,...,Pn}形成一个进程等待环路 4.解决死锁的方法有哪些? >>不让死锁发生: -预防死锁:静态策略 设计合适的资源分配算法,限制死锁发生的条件,不让死锁发生,及事先即预防死锁 -避免死锁:动态策略

linux进程调度

北战南征 提交于 2020-01-14 13:45:25
schedule调度流程 schedule就是主调度器的函数, 在内核中如果要将CPU分配给与当前活动进程不同的另一个进程, 都会直接调用主调度器函数schedule, 该函数完成如下工作: 确定当前就绪队列, 并在保存一个指向当前(仍然)活动进程的task_struct指针。 检查死锁, 关闭内核抢占后调用__schedule完成内核调度。 恢复内核抢占, 然后检查当前进程是否设置了重调度标志TLF_NEDD_RESCHED, 如果该进程被其他进程设置了TIF_NEED_RESCHED标志, 则函数重新执行进行调度。 do { preempt_disable(); /* 关闭内核抢占 */ __schedule(false); /* 完成调度 */ sched_preempt_enable_no_resched(); /* 开启内核抢占 */ } while (need_resched()); /* 如果该进程被其他进程设置了TIF_NEED_RESCHED标志,则函数重新执行进行调度 */ __schedule如何完成内核抢占 查看__schedule 函数实现,主要做如下工作: 完成一些必要的检查, 并设置进程状态, 处理进程所在的就绪队列。 调度全局的pick_next_task选择抢占的进程。 如果当前cpu上所有的进程都是cfs调度的普通非实时进程, 则直接用cfs调度

第二章、进程的描述与控制

荒凉一梦 提交于 2020-01-13 14:57:18
第二章、进程的描述与控制 2.1 前趋图和程序执行 2.1.1 前趋图 概念: 所谓前趋图:指一个有向无循环图(DAG),它用于描述进程之间执行的先后顺序。 2.1.2 程序顺序执行 特征: 顺序性 封闭性:指程序在封闭的环境中运行,程序运行时独占全机资源,资源的状态只有本程序才能改变,程序一旦开始执行,其执行结果不受外界因素影响 可再现性:只要条件相同还会得到相同的执行结果。 2.1.3 程序并发执行 特征: 间断性 失去封闭性 不可在现性 2.2进程的描述 2.2.1 进程的定义和特征 定义 为了使程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了进程的概念。 为了使参与并发执行的每个程序都能独立运行,在操作系统中必须为之分配一个专门的数据结构,称为进程控制块(PCB)。系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程。 因此进程的定义为: 由程序段、相关的数据段和PCB三部分构成的进程实体。 比较典型的定义有: 进程是程序的一次执行 进程是一个程序及其数据在处理机上顺序执行时所发生的活动 进程是具有独立功能的程序在一个数据结合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 进程的特征 动态性 并发性 独立性 异步性 2.2.2 进程的基本状态以及转换 进程三种基本状态 由于多个进程在并发执行时共享系统资源