当前位置:文档之家› 操作系统的四个基本特征

操作系统的四个基本特征

操作系统的四个基本特征1-并发fconeiu f'^rice)并tm与井笈性这厲个槪念是既相似乂憧別的朗平槪叡幷行性是描対亍或带落牛审杵在同一时剖发空,这是一个具W1SMSX的概念,如在物理上富些事件厘同时发生的:而并彊性是措两个或者多个事杵在同一时间的间隔内发主它是一牛较鸳宏观的概念.在溢道程序环境下,并发性是捋衽一段时何内有舊道程序在同时运行.但在单处理机的毎统屮.毎一时刻仅能执行一道程序,故微观上这些程序是在交萍执行的"应r指时.通常的程序是苏态实休,它们是不能并疑执行的.为了便程序陡并发执行,系统宓须分别为每介程序建立进程” 进程,乂称枉务,简单來说,是捋在系筑屮能柚立运tr并作为资舫分配的華术单位,它是一个活动的如札多牛进程Z间可以井发执行和交换信息・一个进程在运齐时冷要运行时需里一定的齡乳如中山存紡空间,仪山设备等’在操件筋细ITI入型程的目的是使程序能幷发执行=2,Sharing)所谓其李是指.耒统屮的帝源可供内存屮多个并发执行的诳程共同便用. 由于资源的属性不同,故第个进程炖资源的共早方式也木同,可II分为;互斥共寧方云和同时访问方式3.虚姒(virtual)是捋通过技术吧一个物理实休变城若干个遇钳I■的对战物"在操作系统屮虛拟的实圳主要是迪过分时的便用方法=显然,Wn是臬一个物理设备所对闽的虚拟逻料设备數,则虚拟设备的速度叱燃是物理设報遊厦的1/ii,4H fas yrichwti i SIP)在多道輕序设计环境下,允许多个诳程并菽执行,由于賣源等崗靠的限制, 迪航进程的执拧并非” Y列成J而是以*走龙停停"的方式运行*内存屮每个进程在何时妆仏何时暂阴臥怎杆的方式向前推进'每道程吊总共需書乡少时间才能完成,都杲不可预知的.或者说,进程是以一步的方式运行的.尽管如此,但只雯运行环境相同,作业经过多次运行.都会获得完全相同的结果因此,斤步运行方式是运冇的.可见,操作系统为门电程序幷发执行而产主『进程.进程的定义:可并发执行的程序在一个数据集合上的运行过程。

进程的特征:1.动态性进程既然是进程实休的执行过程,因此进程是有一定的生命期h 而程序只是一组有序指令的集合,并放在臬种介质上,木身无运行的含义,W 此程序是个的态的实体.2.井发性3.独龙性这是指爲程丈休是一个能独*运行的基木单位,同时也是系统种越立获得资滋和训度的基木爪位。

4.并步性5•給构特征从结构上看,进程实休是由程序段、数据段及进程控制块二部分组成.(进程控制块(PCB);进程控制块是班程实休的一部分,它记录/■操作系统所需要的、用于描述进程情况及控制逬程运行所需的仝部馆息。

皿是根据PCB來对并发执行的进程进行控制和管理的)关干进程的总结:定义:可并发执行的程序在一个数辦集合上的运行过程,每个进程有一个门己的地址空间以及一个单一的控制流程.翌解决的问题:为f使程序能并发执行,(要并发执疔就要隔离进程,使进程独立,即每个进程有屈于H己的数据段、程序段、进程控制块)线程的出现:我们首先回顾进程的网个基木恳性:⑴进程便一个可拥有资涼的砂左巾I位⑵进程同时乂是一个可以独立训度和分派的基木单位n正是由于这两个基木辰性,才使进程诚为一个能独立运行的基木单他"从而构成了进程并发执行的基nilHili®为「使程序能并发执厅,系统必须进行以下操作:(1)创建进程。

创铤一个进程时必须为Z人.分配所必隔的、除处理器以外的所有協源,如内存空间、I/O©备以及建立相皿的PCB.(2)撤消进程"系统在撤消进程时,需要先对这这些资源进行回收,然后再撤销PCB.⑶拠程切换.在对进程进行切换时,由于要保留、打前进程的CPU环境和设苣新选屮的进程的CPU环境,为此须花费不少处理器时间.简WZ,由于进程是一个済源的拥有者,伙I而在进程的创建.撤悄、和切换的过程屮,系统必须为Z付出校大的时空幵销,也正因为如此,在系统中设置的进程的数目不宜过名,进程的切换的频率也不宜过侖,但这也就限制r并发程度的进一步提布°为了解决这个问题,不少操作系统的学者们想到:将进程的两个属性分开,由操作系统分开处理C即对作为说度和分派的基木单•位,不同时作为独龙分配诳源的r位,以他乙轻装运行:丽刈拥自说源的宰/卩位,丈爪频繁地对z进行切换,在这种思想的指导下,产生r线程的概念.线程引入的原囲:为r减少程序并发执行所付出的时空开销,使g具育如好的并发性。

在引入纯程的皿中,线程是进程屮的一个实体(进程中的一个或名个指令执■行流),是被系统独立调度和分派的基木取位.线程甚木上不再拥有系统法源" (只拥有一点在运行屮必不可少的论源,如程序计数器、寄存器和栈).但它可与同属一个进程的其他线程功能共享进程所拥有的全部资涼"贱一个线程可以创建和撤销另一个线程;同一进程屮的多个线程2间可以并发执行.线程与进程的比较;线程具有许多传统进程所具有的特征,故乂称为轻型线程或进程元;而把传统的进程称为更型进程.在引入r线程的os屮,通常一个进程拥有若干个线程" 下面从四个方向束比较线程与进程"1•调度在"原始"的OS屮,拥有资源的基木单也和独立调度、分配的基木中也都是进程,而在引入线程的OS中,则把线程作为凋度和分派的基木取位,而把进程作为资源娴有旳旱术乐位.便传统进棍的旳个囲住分廿,线屈便能轻装运行,从而可以显若的畏硏系统并发程度"在同一进程屮.线程的切换不会引起进程切换,在由一个进程屮的线程切换到另一进程屮的线程时,将会引起进程切换“2.并发性在引入线程的OS屮「不仅进程2间可以并发执行,而且在一个进程屮的多个线程Z间亦可以并发执行,因而便OS具有史好的并发性,从而能屯有效的便用系统负源和提商系统吞吐虽.3.拥有资源不论是"原始"的OS,还是设有线程的操作系统,谨程都是拥有资源的一个独立號位,它可以拥有门己的诳断线程门己塞木不再拥有系统讲源,但它可以功问其求屈进程询資源"4.系统开销由于在创建或橄销进程时,系统都要为之分配或回收资源,如内存空间,I/O设备等.因为,OS所付出的开俏将显老地大于在创建或撒馆线程时的开俏. 炎似的,在进行谨程切换时,涉及到整个Y前进程CPI;环境的保存以及新祓调度运行的进程的CPU环境设置。

而线程切换只须保存和计置少量寄存器的内容, 并不涉及存储器俘理方両的操作.可见,进程切换的开销也远大于线程切换的幵俏.此外,中于同一进程屮的多个线程具有相同的地址空间,使它们Z间的同步和通信的实现变得比较容易.这个机制在现代操作系统的实现主要可分为两大类°即根据操作系统内核是否对线积可越知,分为内核线程和用户线程.1.内核线程无论是用户进程屮的线程还是系统进程川的线程,它们的创建、撒悄和切换都是由内核求观的。

在内核屮保昭『一张线程控制块,内核根据该控制块而感知线程的存在并对线程进行控制.2.用户线程它仅存在于用户级屮,对于这种线程的创建、揪销和切换,都不利用系统说用丈现,因而这种线程与内核无关.相丿'V地,内核也并不知道用户级线程的存在・(调度的实现方式是采用在用户空间增加运行库,这些运行阵被称为"线程包",每十用户进程获得CPJ控制权,线程运行库决定该从哪里开始运行)佼际匕上而所说的线程是操作系统说度的甚木號位,实时卜•指的只是内核线程.操作系统在调度时"参考各进程内的袋程运行情况做出调度决定,女II 果一个进釈屮没有就绪态的线程,那么这个进程也不会被调度占用CPU.在WLridows2000屮,探作系统进行调度时根术就不理采线程是属于哪个进程的,只是将所有的就绪线程统一排成若干个优先级队列,然后进行调度。

在这个情况下,线程的确成了调度的最小单位儿关于线程的总结:出现的背景:由于进程是一个资源的拥有者,因而在进程的创建、撤馆、和切换的过程屮,系统必须为Z付出较大的时空开销,限制「并发程度的进一步耍解决的问题:解抉进程的创建、撤悄、和切换的过程中,系统必须为Z付岀较大的时空开悄的间題解决的方达:将进程的两个屈性分开“由操作系统分开处殛。

把"独龙调度、分配的基木单位•这个属性分离出來作为线程;而把诳程作为资源拥有的基木取他线程作为进程中的一个实休而存在.应用程序域的出现:(來(1 insdn>在出现以前,一个进程下,只能运行一个W用程序,而在,net tfi观后, 一个邊程下,可以运行多个血用程序,这都是优为W用程序域的岀现。

以前使用进程边界來隔离在同一台计算机匕运行的应用程序。

每一个应用程序被加栽到单独的进程屮,这样就将该M用程序与在同一台计算机卜•运行的其他用用程序相隔离.隔离这些W用程序的原闵在于内存地址是与进程相关的;在目标进程屮,不能通过任何有羸义的方式使用从一个进程传递到另一个进收的内存指针.此外, 您不能在阳个进程间进行直接调用•您必须代2以使用代理,它提供一定程度的间接性°hV用程序域提供安全而通用的处理用元,公共语育运行府可使用它來提供闵用程序Z间的隔离.您可以在具有同等隔蔺级别(存在于单辿的进程屮)的爪个进程屮运行儿个应用程序城,而不会造成进程间调用或进程间切换等方翫的额外开俏.在一个进程内运行多个W用程序的能力显著增强『服务器的可伸缩性。

隔离血用程序对于皿用程序安全也是I•分丞要的.例列,您可以在敢个浏览器进程屮运行儿个1泌屁用程序屮的腔件,同时便这些瞪件不能访间彼此的数据和资湖aWffl程序域所提供的隔离具有以下优占(引入原和:在一个应用程序屮出现的错误不会影晌其他W用程序’因为类型安全的代码不会导致内存错误"所以便用W用程序域可以确保在一个域屮运行的代码不会影响进程屮的其他应用程辰能够在不停止堆个进程的情况下停止单个网川程序n使用N用程序域使您可以卸载在笊个臧用程序屮运行的代码。

用用程序域形成r托管代蚂的騎离、卸载和安仝边界°线程是公共讲肓运行用用来执行代码的操作系统构造.在运行时,所有托管代码均加载到一个应用程序域屮,由特定的操作系统线程来运行.w用程序域和线程z间不具有一对一的相关性"在任竄给定时何,在笊个应用程序域屮可以执行儿个线程,而且特定线程并不局很在单个川用程序域内. 也就是说,线程可以h由跨越N用程序域边界;不为每个应用程序域创建新线程。

在任意给定时间,每一线程都在一个w用程序域屮执伉运行库会球踪音哪些w 用程序域屮有哪些线程正在运行.。

相关主题