答:并发和并行时既相似又有区别的两个概念。、
并行性是指两个或多个事件在同一时刻发生,倘若计算机有多个处理机即可实现事件的并行执行
并发性是指两个或多个事件在同一时间间隔内发生,一般在单处理机系统中出现,同一时刻只能由一道程序执行,故微观上这些程序只能是分时地交替运行
总结:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
1. 就绪状态->(进程调度)执行状态
处于就绪状态的进程,在调度程序为止分配了处理机之后便可执行,其状态由就绪转为执行
2.执行状态->(时间片完)就绪状态
正在执行的进程,如果因分配给它的时间片已完而被剥夺处理机暂停执行时,其状态由执行转为就绪
3.执行状态->(IO请求)阻塞状态
如果发生某事件,导致当前进程受阻塞(进程访问临界资源,而该资源正被其他进程访问时),便无法继续执行,则状态转为阻塞状态
4.阻塞状态->(IO完成)就绪状态
当IO等发生阻塞的事件完成,进程可以继续执行时,则状态转为就绪状态
多个程序在并发执行时,由于共享系统资源,如cpu,io设备等,导致这些并发执行的程序之间形成相互制约的关系。对于像打印机、磁带机这些的临界资源,必须保证多个进程对其只能互斥地访问。
某些应用程序为了完成某任务而建立了两个或多个进程。这些进程将为完成同一项任务而相互合作。进程间的直接制约关系就是来源于它们之间的相互合作。
线程具有传统进程所具有的特征,又称之为轻型进程或进程元。相应地,把传统进程称之为重型进程。它相当于只有一个线程的任务。
进程是作为独立调度和分派的基本单位,因而进程是能独立运行的基本单位。
线程是作为调度和分派的基本单位,线程也是能独立运行的基本单位,当线程切换时,切换代价远低于进程。
在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个进程之间亦可并发执行,甚至还允许在一个进程中的所有线程都能并发执行。
例如网络服务器经常会接到许多客户的请求,若采用单线程的进程执行该任务,则每次只能为一个客户服务。若在进程中设置多个线程,将其中的一个专用于监听客户的请求,则每次有一个客户请求时,便立即创建一个线程来处理该客户的请求
进程可以拥有资源,并作为系统中拥有资源的一个基本单位。
线程本身并不拥有系统资源,而是仅有一点必不可少的、保证独立运行的资源。
在同一进程中的不同线程之间的独立性要比不同进程之间的独立性低得多
在创建或撤销进程时,系统都要为之分配和回收进程控制块、分配或回收其他资源。
而线程的切换代价远低于进程
线程的创建比进程的创建快30倍,线程上下文切换要比进程之间的同步和通信也比进程的简单
在单线程进程中,不管有多少处理机,进程只能运行在一个处理机上。
在多线程进程中,可以将一个进程中的多个线程分配到多个处理机上。
FCFS是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。挡在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行时间的长短,从后备作业队列中选择几个最先进入该队列的作业,将它们调入内存,为它们分配资源和创建进程。
实际情况中,短作业占有很大比例,为了能使它们能比长作业优先执行,而产生了短作业优先调度算法
系统根据FCFS策略,将所有的就绪进程排成一个就绪队列,并可设置每隔一定时间间隔产生一次中断,激活系统中的进程调度程序,完成一次调度,将cpu分配给队首进程,令其执行。当该进程的时间片耗尽或运行完毕时,系统再次将CPU分配给新的队首进程。由此,可保证就绪队列中的所有进程在一个确定的时间段内,都能够获得一次CPU执行
双方都希望对方能释放出自己占有的资源,但谁都因不能获取自己所需要的资源去继续运行,从而无法释放出自己占有的资源,并且一直处于这样的僵持状态而形成死锁
通常是源于多个进程对资源的争夺,不仅对不可抢占资源进行争夺时会引起死锁,而且对可消耗资源进行争夺时,也会引起死锁。
书p58,p59,p60
本文发布于:2025-02-21 20:29:00,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1740140973579175.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |