精华内容
下载资源
问答
  • 描述操作系统抢占式非抢占式算法的可视化简单操作界面,主要利用java-swing构建窗口,利用数组完成算法,采用Graphics2D画图完成。
  • 抢占式与非抢占式调度When the CPU is in the idle state, the CPU scheduler chooses a process from the ready queue and allocates the process to CPU. There are two types of scheduling, 当CPU处于空闲状态...

    抢占式与非抢占式调度

    When the CPU is in the idle state, the CPU scheduler chooses a process from the ready queue and allocates the process to CPU. There are two types of scheduling,

    当CPU处于空闲状态时,CPU调度程序从就绪队列中选择一个进程,并将该进程分配给CPU。 调度有两种类型,

    1. Preemptive Scheduling

      抢占式调度

    2. Non-Preemptive Scheduling

      非抢占式调度

    1)抢占式调度 (1) Preemptive Scheduling)

    Once a process started its execution, scheduling occurs at the time of a process switches from running state to ready state and from waiting state to ready state is called Preemptive Scheduling.

    一旦进程开始执行,调度就在进程从运行状态切换到就绪状态以及从等待状态切换到就绪状态时发生,称为抢先调度。

    In this scheduling resources (CPU cycles) are allocated to the process for a short period of time and if some process of higher priority is encountered then the current process can be paused to handle that process.

    在这种调度中,资源(CPU周期)会在短时间内分配给该进程,如果遇到某些优先级更高的进程,则可以暂停当前进程以处理该进程。

    • Then resources from the currently running process taken away, and the currently running process is placed back in the ready queue again if it still has remaining CPU burst time. That is we can preempt the control of CPU from one process to another if required. The process remains in a ready queue till it gets the next time slot to get executed.

      然后,如果仍然有剩余的CPU突发时间,则会从当前正在运行的进程中删除资源,并将当前正在运行的进程再次放回到就绪队列中。 也就是说,如果需要,我们可以抢先将CPU的控制从一个进程转移到另一个进程。 该过程将一直处于就绪队列中,直到获得下一个要执行的时隙为止。

    • By implementing this type of scheduling user can work on multiple processes that are it supports multitasking.

      通过实现这种类型的调度,用户可以在支持多任务的多个进程上工作。

    • Examples of Preemptive Scheduling are Round Robin (RR), Shortest Remaining Time First (SRTF), Priority (preemptive version), etc.

      抢占式调度的示例包括循环调度(RR),最短剩余时间优先(SRTF),优先级(抢占版本)等。

    2)非抢占式调度 (2) Non-Preemptive Scheduling)

    Once a process started its execution, scheduling occurs when a process terminates, or a process switches from running to waiting state.

    一旦进程开始执行,调度将在进程终止或进程从运行状态切换到等待状态时进行。

    • When the resources (CPU) are allocated to a process, the process holds the CPU till it gets terminated or it reaches a waiting state.

      当将资源(CPU)分配给进程时,该进程将保持CPU直到其终止或达到等待状态。

    • In non-preemptive scheduling, the scheduler does not interrupt a currently running process in the middle of the execution. But it waits for the process to complete its execution with the CPU, after that it can allocate the CPU to another process.

      在非抢占式调度中,调度程序在执行过程中不会中断当前正在运行的进程。 但是它等待进程完成其与CPU的执行,然后可以将CPU分配给另一个进程。

    • FCFS scheduling is an example of non-preemptive scheduling.

      FCFS调度是非抢占式调度的一个示例。

    抢占式和非抢占式调度之间的区别 (Differences between Preemptive and Non-Preemptive Scheduling in OS)

    • In the middle of the execution of a process the execution is interrupted whereas; in non-preemptive scheduling, execution is not interrupted in the middle of execution.

      在执行过程的中间,执行被中断,而; 在非抢占式调度中,在执行过程中不会中断执行。

    • Preemptive Scheduling suffers from the overhead of switching between processes from the ready state to running state, vice-verse, and maintaining the ready queue. On the other hand, non-preemptive scheduling does not suffer from the overhead of switching the process from running state to ready state.

      抢先式调度会遭受从就绪状态到运行状态(反之亦然)之间进行切换以及维护就绪队列的开销。 另一方面,非抢占式调度不会遭受将进程从运行状态切换到就绪状态的开销。

    • When a high priority process arrives frequently in the ready queue then the process with low priority has to wait for a long time, and it may have to starve, in preemptive scheduling. Whereas in the non-preemptive scheduling, if CPU is allocated to the process with larger burst time then the processes with smallest burst time may have to starve.

      当高优先级的进程频繁到达就绪队列时,低优先级的进程必须等待很长时间,并且可能会在抢占式调度中饿死。 而在非抢占式调度中,如果将CPU分配给具有较大突发时间的进程,则突发时间最小的进程可能不得不挨饿。

    • The critical processes are allowed to access CPU whenever they arrive into the read queue. In this way preemptive scheduling is flexible. While non-preemptive scheduling is rigid because if a critical process enters the ready queue the process running CPU not disturbed.

      只要关键进程进入读取队列,就可以访问它们。 这样,抢占式调度是灵活的。 非抢占式调度很严格,因为如果关键进程进入就绪队列,则运行CPU的进程不会受到干扰。

    • The Preemptive Scheduling has to maintain the integrity of shared data so it is cost associative but it is not the case with non-preemptive Scheduling.

      抢先式调度必须维护共享数据的完整性,因此这与成本相关,但非抢先式调度则不是这种情况。

    • The main difference between these two schedules is that in non-preemptive scheduling, the CPU is allocated to the process till it completes its execution or switches from running state to waiting state. Whereas in preemptive scheduling the CPU is allocated to a process for a limited amount of time.

      这两个调度之间的主要区别在于,在非抢占式调度中,CPU被分配给进程,直到它完成执行或从运行状态切换到等待状态。 而在抢占式调度中,CPU将在有限的时间内分配给某个进程。

    References:

    参考文献:

    翻译自: https://www.includehelp.com/operating-systems/preemptive-vs-non-preemptive-scheduling.aspx

    抢占式与非抢占式调度

    展开全文
  • 编排 |strongerHuang微信公众号 |嵌入式专栏操作系统分为抢占式内核和非抢占式内核,通常RTOS都是抢占式内核。下面就来讲讲抢占式内核和非抢占式内核的内容。非抢占式内核抢...

    编排 | strongerHuang

    微信公众号 | 嵌入式专栏

    操作系统分为抢占式内核和非抢占式内核,通常RTOS都是抢占式内核。

    下面就来讲讲抢占式内核和非抢占式内核的内容。

    非抢占式内核

    非抢占式内核要求每个任务(线程)都做一些事情来明确放弃对 CPU 的控制,为了保持多任务并发的错觉,必须要有这一步操作。

    非抢占式调度也称为协作多任务,任务相互协作以共享 CPU,异步事件仍然由 ISR 处理。ISR 可以使更高优先级的任务准备好运行,但 ISR 总是返回到被中断的任务。

    只有当当前任务放弃 CPU 时,新的更高优先级任务才会获得对 CPU 的控制。

    非抢占式内核的优点之一是中断延迟更低,在任务级别,非抢占内核也可以使用不可重入函数。每个任务都可以使用不可重入函数,而不必担心被另一个任务破坏。这是因为每个任务都可以在放弃 CPU 之前运行到完成。但是,不应允许不可重入函数放弃对 CPU 的控制。

    使用非抢占式内核的任务级响应可能比前台/后台系统低得多,因为任务级响应现在由最长任务的时间给出。

    非抢占式内核的另一个优点是较少需要通过使用信号量来保护共享数据。每个任务都拥有 CPU,你不必担心任务会被抢占。当然,这不是绝对的,在某些情况下,仍应使用信号量。共享 I/O 设备可能仍需要使用互斥信号量;例如,任务可能仍需要对打印机的独占访问。

    (1) 任务正在执行但被中断。

    (2) 如果中断被使能,CPU 向量(跳转)到 ISR。

    (3) ISR 处理事件并使更高优先级的任务准备好运行。

    (4) ISR完成后,执行返回指令,CPU返回被中断的任务。

    (5) 任务代码在中断指令之后的指令处恢复。

    (6) 当任务代码完成时,它调用内核提供的服务,将 CPU 交给另一个任务。

    (7) 内核看到更高优先级的任务已经准备好运行,因此,内核执行上下文切换,以便它可以运行(即执行)更高优先级的任务来处理由 ISR 发出信号的事件。

    非抢占式内核最重要的缺点是响应性:已准备好运行的较高优先级任务可能需要等待很长时间才能运行,因为当前任务应该及时放弃CPU使用权。

    与前台/后台系统中的后台执行一样,非抢占式内核中的任务级响应时间是不确定的;你永远不知道最高优先级的任务何时才能获得 CPU 的控制权。这个操作由你的应用程序来决定怎么时候放弃对 CPU 的控制。

    总而言之,非抢占式内核允许每个任务运行,直到它自愿放弃对 CPU 的控制。中断抢占任务,ISR 完成后,ISR 返回到被中断的任务。任务级响应比前台/后台系统要好得多,但仍然是不确定的,因此,很少有商业内核是非抢占式的。

    抢占式内核

    μC/OS-II、RTT等大多数实时内核都是抢占式的,准备运行的最高优先级任务始终被赋予 CPU 控制权。

    当一个任务使更高优先级的任务准备好运行时,当前任务被抢占(挂起)并且更高优先级的任务立即获得 CPU 的控制权。

    如果 ISR 使更高优先级的任务准备就绪,当 ISR 完成时,被中断的任务被挂起并恢复新的更高优先级任务。

    (1) 任务正在执行但被中断。

    (2) 如果中断被使能,CPU 向量(跳转)到 ISR。

    (3) ISR 处理事件并使更高优先级的任务准备好运行。ISR 完成后,调用内核提供的服务(即调用内核提供的函数)。

    (4) & (5) 该函数知道一个更重要的任务已经准备好运行,因此内核将执行上下文切换并执行更重要的代码而不是返回到被中断的任务任务。当更重要的任务完成时,内核提供的另一个函数被调用,让任务进入休眠状态,等待事件(即 ISR)发生。

    (6) & (7) 然后内核“看到”需要执行一个较低优先级的任务,并完成另一个上下文切换以恢复被中断任务的执行。

    使用抢占式内核,最高优先级任务的执行是确定性的;你可以确定它何时可以控制 CPU。因此,通过使用抢占式内核可以最大限度地减少任务级响应时间。

    使用抢占式内核的应用程序代码不应使用不可重入函数,除非通过使用互斥信号量确保对这些函数的独占访问,因为低优先级和高优先级任务都可以使用公共函数。如果较高优先级的任务抢占正在使用该功能的较低优先级的任务,则可能会发生数据损坏。

    总而言之,抢占式内核始终执行准备运行的最高优先级任务。中断抢占任务,完成 ISR 后,内核将继续执行准备运行的最高优先级任务(而不是被中断的任务)。任务级别的响应是最佳的和确定性的,当系统响应性很重要时,建议使用抢占式内核。

    免责声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

    —— The End ——

    推荐好文  点击蓝色字体即可跳转

     张一鸣:我的大学四年收获及工作感悟

    ☞ ARM与RISC-V的恩爱情仇

    ☞ 优雅地用宏实现环形缓冲区

    ☞ 函数指针,这6点你学会了吗?

    ☞ 简易PID算法的快速扫盲

    欢迎转发、留言、点赞、分享给你的朋友,感谢您的支持!

    长按识别二维码关注我

    你点的每个好看,我都认真当成了喜欢

    展开全文
  • 非抢占式实时操作系统Here you will learn about difference between ... 在这里,您将了解os中抢占式非抢占式调度之间的区别。 Preemptive Scheduling 抢占式调度 Preemptive Scheduling means once a pr...

    非抢占式实时操作系统

    Here you will learn about difference between preemptive and non-preemptive scheduling in os.

    在这里,您将了解os中抢占式和非抢占式调度之间的区别。

    Preemptive Scheduling

    抢占式调度

    Preemptive Scheduling means once a process started its execution, the currently running process can be paused for a short period of time to handle some other process of higher priority, it means we can preempt the control of CPU from one process to another if required.

    抢占式调度是指一旦某个进程开始执行,就可以将当前正在运行的进程暂停一小段时间,以处理其他更高优先级的进程,这意味着如果需要,我们可以将对一个进程的CPU控制权抢占到另一个进程。

    A computer system implementing this supports multi-tasking as it gives the user impression that the user can work on multiple processes.

    实现此目的的计算机系统支持多任务,因为它给用户留下了用户可以在多个进程上工作的印象。

    It is practical because if some process of higher priority is encountered then the current process can be paused to handle that process.

    这是实用的,因为如果遇到某些优先级更高的进程,则可以暂停当前进程以处理该进程。

    Examples:- SRTF, Priority, Round Robin, etc.

    示例: -SRTF,优先级,循环查询等。

    Non-Preemptive Scheduling

    非抢占式调度

    Non-Preemptive Scheduling means once a process starts its execution or the CPU is processing a specific process it cannot be halted or in other words we cannot preempt (take control) the CPU to some other process.

    非抢占式调度是指一旦某个进程开始执行或CPU正在处理特定进程,就无法停止调度,换句话说,我们无法将CPU抢占(控制)其他进程。

    A computer system implementing this cannot support the execution of process in a multi task fashion. It executes all the processes in a sequential manner.

    实现此目的的计算机系统不能支持以多任务方式执行过程。 它以顺序方式执行所有过程。

    It is not practical as all processes are not of same priority and are not always known to the system in advance.

    这是不切实际的,因为所有过程都不具有相同的优先级,并且系统并不总是事先知道的。

    Examples:- FCFS, SJF, Priority, etc.

    例如: - FCFSSJF优先级等。

    Difference between Preemptive and Non-Preemptive Scheduling in OS

    Image Source

    图片来源

    操作系统中抢占式和非抢占式的区别 (Difference between Preemptive and Non-Preemptive Scheduling in OS)

    Preemptive SchedulingNon-Preemptive Scheduling
    Processor can be preempted to execute a different process in the middle of execution of any current process.Once Processor starts to execute a process it must finish it before executing the other. It cannot be paused in middle.
    CPU utilization is more compared to Non-Preemptive Scheduling.CPU utilization is less compared to Preemptive Scheduling.
    Waiting time and Response time is less.Waiting time and Response time is more.
    The preemptive scheduling is prioritized. The highest priority process should always be the process that is currently utilized.When a process enters the state of running, the state of that process is not deleted from the scheduler until it finishes its service time.
    If a high priority process frequently arrives in the ready queue, low priority process may starve.If a process with long burst time is running CPU, then another process with less CPU burst time may starve.
    Preemptive scheduling is flexible.Non-preemptive scheduling is rigid.
    Ex:- SRTF, Priority, Round Robin, etc.Ex:- FCFS, SJF, Priority, etc.
    抢占式调度 非抢占式调度
    在任何当前进程的执行过程中,处理器都可以抢先执行不同的进程。 一旦处理器开始执行一个进程,它必须先完成它,然后再执行另一个进程。 它不能在中间暂停。
    与非抢先式调度相比,CPU利用率更高。 与抢先式调度相比,CPU利用率更低。
    等待时间和响应时间更少。 等待时间和响应时间更长。
    优先调度是优先的。 最高优先级的进程应始终是当前使用的进程。 当某个进程进入运行状态时,直到完成服务时间,该进程的状态才会从调度程序中删除。
    如果高优先级进程频繁到达就绪队列,则低优先级进程可能会饿死。 如果突发时间较长的进程正在运行CPU,则另一个CPU突发时间较短的进程可能会饿死。
    抢占式调度非常灵活。 非抢占式调度是严格的。
    例如:-SRTF,优先级,循环查询等。 例如:-FCFS,SJF,优先级等

    This article is submitted by Rahul Maheshwari. You can connect with him on facebook.

    本文由Rahul Maheshwari提交 您可以在Facebook上与他建立联系。

    Comment below if you have any queries related to above tutorial for difference between preemptive and non-preemptive scheduling in os.

    如果您对os中的抢占式和非抢占式调度之间的区别有任何疑问,请在下面评论。

    翻译自: https://www.thecrazyprogrammer.com/2017/03/difference-preemptive-non-preemptive-scheduling-os.html

    非抢占式实时操作系统

    展开全文
  • 非抢占式抢占式进程调度都属于最高优先级进程调度。 采用非抢占式最高优先级调度算法,当**就绪队列**中某进程的最高优先级高于正在**处理器**中运行的进程的最高优先级时,并不会让正在运行的进程退出处理器,...
    最高优先级调度算法原则上总是调度就绪队列中优先级最高的那个进程。非抢占式和抢占式进程调度都属于最高优先级进程调度。
    采用非抢占式最高优先级调度算法,当**就绪队列**中某进程的最高优先级高于正在**处理器**中运行的进程的最高优先级时,并不会让正在运行的进程退出处理器,而是将高优先数的排在就绪队列的首部。而采用抢占式最高优先级进程调度算法,则高优先数的进程会抢占**处理器**,让**正在处理**的**进程**处于**就绪队列**。
    此外,低级调度和高级调度区别也要明确。
    
    展开全文
  • 抢占式内核与非抢占式内核的区别

    千次阅读 2013-09-11 20:45:56
    非抢占式内核: 高优先级的进程不能中止正在内核中运行的低优先级的进程而抢占CPU运行。进程一旦处于核心态(例如用户进程执行系统调用),则除非进程自愿放弃CPU,否则该进程将一直运行下去,直至完成或退出内核。 ...
  • 抢占式抢占式进程调度的区别是什么?

    万次阅读 多人点赞 2018-04-14 00:18:51
    1) 非抢占式优先权算法在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的...
  • 抢占式内核和非抢占式内核的区别

    千次阅读 2020-01-02 17:55:59
    非抢占式内核:高优先级的进程不能中止正在内核中运行的低优先级的进程而抢占CPU运行。进程一旦处于核心态(例如用户进程执行系统调用),则除非进程自愿放弃CPU,否则该进程将一直运行下去,直至完成或退出内核 ...
  • 一、概括 (1)自旋锁适用于SMP系统,UP系统用spinlock是作死。 (2)保护模式下禁止内核抢占的方法:1、执行终端服务例程时2、执行软中断和tasklet时3、设置...(4)在抢占式内核的spin_lock宏中,第一次关抢占,目的
  • 抢占式非抢占式

    千次阅读 2019-08-29 14:42:45
    抢占式内核抢占式内核的不同 Linux2.4只实现了“有条件抢占式”的调度。它的缺点在于:当进程在内核态时,调度的时机有局限。就是只能在xxx的前夕。例如:当外部来一中断,中断程序过程完后,需要一个用户进程...
  • 抢占式与非抢占式调度算法

    千次阅读 2018-01-16 18:54:00
    1.非抢占式优先权算法:系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成。 2.抢占式优先权调度算法:系统同样把处理机分配给优先权最高的进程,使之执行.但在其执行期间,只要...
  • 非抢占式内核在中断处理中,是不会切换到其他任务的,即使时间片已到 linux0.11内核属于抢占内核,如果一个进程在内核中执行,除非它主动让出,没有人会让它退出的 linux2.6内核属于抢占内核,如果进程在内核中...
  • 微服务基础----keepalived抢占式非抢占式的配置及区别 Keepalived抢占模式和抢占模式: ### 抢占模式即MASTER从故障中恢复后,会将VIP从BACKUP节点中抢占过来。 ### 抢占模式即MASTER恢复后不抢占BACKUP升级...
  • 非抢占式调度算法的实现(非抢占式、不可剥夺式) 时间如冲冲流水,一转眼间都毕业快一年了。这一年里忙忙碌碌,却又碌碌无为。有时又总想,生亦何苦,死亦何哀。之前做了个STM8的脱机编程器,使用了EMWIN,学习到了...
  • 抢占式内核与非抢占式内核

    千次阅读 2016-04-13 13:02:01
    抢占式内核与非抢占式内核 linux抢占式内核实时系统的关系 一个好的系统的进程调度机制,要兼顾三种不同的应用的需求: 1交互式应用。这种应用,着重于系统的响应速度,当系统中有大量的进程共存时(多用户)...
  • 抢占式非抢占式内核

    千次阅读 2017-12-27 10:07:30
    非抢占式内核非抢占式内核:高优先级的进程不能中止正在内核中运行的低优先级的进程而抢占CPU运行。进程一旦处于核心态(例如用户进程执行系统调用),则除非进程自愿放弃CPU,否则该进程将一直运行下去,直至完成或...
  • 操作系统【处理机调度算法作业(调度算法下的调度时间图:FCFS、抢占式\非抢占式SPF、抢占式\非抢占式HPF、HRRN和RR)】 简述死锁的定义、死锁产生的原因、以及处理死锁的方法。
  • 线程的抢占式非抢占式调度

    千次阅读 2019-03-14 16:48:33
    在一个进程里,线程的调度有抢占式或者抢占的模式。 在抢占模式下,操作系统负责分配CPU时间给各个进程,一旦当前的进程使用完分配给自己的CPU时间,操作系统将决定下一个占用CPU时间的是哪一个线程。因此...
  • 抢占式非抢占式的进程调度

    千次阅读 2017-02-19 20:17:09
    非抢占式(Nonpreemptive) 让进程运行直到结束或阻塞的调度方式 容易实现 适合专用系统,不适合通用系统 抢占式(Preemptive)  允许将逻辑上可继续运行的在运行过程暂停的调度方式 可防止单一进程长时间独占CPU...
  • 在一个进程里,线程的调度有抢占式或者抢占的模式。 在抢占模式下,操作系统负责分配CPU时间给各个进程,一旦当前的进程使用完分配给自己的CPU时间,操作系统将决定下一个占用CPU时间的是哪一个线程。...
  • 1、说说轮巡任务调度与抢占式任务调度的区别? 答:轮询任务调度与抢占式任务调度的区别在于抢占式调度可以因为优先级高的任务抢占cpu,而轮询的不能。  2当软件线程个数超过硬件线程个数的时候,支持抢占式多任务...
  • 进程的调度中,假设一个时间片的大小为0.1,那么假设有几下面几个例子非抢占式:上图可看到进程1的是时间片运行到8.5的时候有第二个进程开始运行了,那么运行状态就装入了进程2,然而进程1的时间片没有用完,所以...
  • 非抢占式调度 抢占式调度 非抢占式调度 当前进程主动放弃处理机控制权,可 能的情况有: 进程运行完毕退出; 运行受阻 运行出错,正常终止 遇到不可挽回的故障 非抢占式调度运行实例 抢占式调度 也称作剥夺式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,901
精华内容 23,160
关键字:

抢占式与非抢占式的区别