zoukankan      html  css  js  c++  java
  • 操作系统的一些概念题(2)

    操作系统的一些概念题(2)

    答案均取自网络或是书本的理解整理(百度知道,百度百科,《操作系统》(张尧学),CSDN,百度题库,百度文库等)

    进程管理

    进程的概念,特征以及和程序的区别?

    进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,在早期面向进程设计的计算机结构中,进程是程序的基本执行实体,在当代面向线程设计的计算机结构中,进程是线程的容器

    程序是指令、数据及其组织形式的描述,进程是程序的实体,是一个指令序列

    进程的特征:

    动态性:是程序的一次执行

    并发性:进程是可以并发执行

    独立性:是系统进行资源分配和调度的一个独立单位

    异步性:进程间的相互制约,使进程执行具有间隙

    结构性:进程是具有结构的

    进程与程序的主要区别:

    程序是长久的,进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的

    程序是静态的观念,进程是动态的观念

    进程具有并发性,而程序没有

    进程是竞争计算机资源的基本单位,程序不是

    进程和程序不是一一对应的:一个程序可对应多个进程即多个进程可执行同一程序; 一个进程可以执行一个或几个程序

    进程具有创建其他进程的功能,而程序没有

    对于所有的程序,都会存在因为程序的并发性导致最终结果失去封闭性吗?

    不会,并不是所有程序的并行执行都会导致运行结果失去封闭性

    例如,当程序中都使用内部变量,不可能被外部程序访问时,程序的运行不会受到环境的影响

    作业和进程的区别?

    一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位

    作业是用户需要计算机完成的某项任务,是要求计算机所做工作的集合

    一个作业的完成要经过作业提交、作业收容、作业执行和作业完成4个阶段,而进程是对已提交完毕的程序所执行过程的描述,是资源分配的基本单位

    其主要区别如下

    作业是用户向计算机提交任务的任务实体。

    在用户向计算机提交作业后,系统将它放入外存中的作业等待队列中等待执行,而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位,任一进程,只要它被创建,总有相应的部分存在于内存中

    一个作业可由多个进程组成,且必须至少由一个进程组成,反过来则不成立

    作业的概念主要用在批处理系统中,像UNIX这样的分时系统中就没有作业的概念,而进程的概念则用在几乎所有的多道程序系统中

    什么是临界区?

    每个进程中访问临界资源的那段代码称为临界区(临界资源是一次仅允许一个进程使用的共享资源),每次只准许一个进程进入临界区,进入后不允许其他进程进入

    不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问,多个进程中涉及到同一个临界资源的临界区称为相关临界区

    并发进程间的制约有哪几种?引起制约的原因是什么?

    并发进程所受的制约有两种:直接制约间接制约

    直接制约是由并发进程相互共享对方的私有资源所引起的

    间接制约是由竞争共有资源而引起的

    什么是进程间的互斥?什么是进程间的同步?

    进程间的互斥是指:一组并发进程中的一个或多个程序段,因共享某一共有资源而导致它们必须以一个不许交叉执行的单位执行,即不允许两个以上的共享该资源的并发进程同时进入临界区

    进程间的同步是指:异步环境下的一组并发进程因直接制约相互发送消息而进行相互合作、相互等待,是各进程按一定的速度执行的过程

    比较PV原语法和加速锁实现进程间互斥的区别?

    互斥的加锁实现是这样的:当某个进程进入临界区之后,它将锁上临界区,直到它退出临界区时为止,并发进程在申请进入临界区时,首先测试该临界区是否是上锁的,如果该临界区已被锁住,则该进程要等到该临界区开锁之后才有可能获得临界区

    加锁法存在如下弊端:

    循环测试锁定位将损耗较多的CPU计算时间

    产生不公平现象

    P,V原语法采用信号量管理相应临界区的公有资源,信号量的数值仅能由P,V原语操作改变,而P,V原语执行期间不允许中断发生

    其过程是这样的:当某个进程正在临界区内执行时,其他进程如果执行了Р原语,则该进程并不像lock时那样因进不了临界区而返回到lock的起点,等以后重新执行测试,而是在等待队列中等待由其他进程做V原语操作释放资源后,进入临界区,这时P原语才算真正结束,若有多个进程做Р原语操作而进入等待状态之后,一旦有V原语释放资源,则等待进程中的一个进入临界区,其余的继续等待

    总之,加锁法是采用反复测试lock而实现互斥的,存在CPU浪费和不公平现像,P,V原语使用了信号量,克服了加锁法的弊端

    什么是线程?线程和进程的区别?

    线程是在进程内用于调度和占有处理机的基本单位,它由线程控制表、存储线程上下文的用户栈以及核心栈组成

    线程可分为用户级线程核心级线程以及用户/核心混合型线程等类型,其中用户级线程在用户态下执行,CPU调度算法和各线程优先级都由用户设置,与操作系统内核无关,核心级线程的调度算法及线程优先级的控制权在操作系统内核,混合型线程的控制权则在用户和操作系统内核二者

    线程与进程的主要区别有:

    进程是资源管理的基本单位,它拥有自己的地址空间和各种资源,例如内存空间、外部设备等,线程只是处理机调度的基本单位,它只和其他线程一起共享进程资源,但自己没有任何资源

    以进程为单位进行处理机切换和调度时,由于涉及到资源转移以及现场保护等问题,将导致处理机切换时间变长,资源利用率降低,以线程为单位进行处理机切换和调度时,由于不发生资源变化,特别是地址空间的变化,处理机切换的时间较短,从而处理机效率也较高

    对用户来说,多线程可减少用户的等待时间,提高系统的响应速度,对于多线程系统而言,则可以在同一进程中使用不同的线程同时进行远程过程调用,从而缩短进程的等待时间

    线程和进程一样,都有自己的状态,也有相应的同步机制,不过,由于线程没有单独的数据和程序空间,因此,线程不能像进程的数据与程序那样,交换到外存存储空间,线程没有挂起状态

    进程的调度、同步等控制大多由操作系统内核完成,而线程的控制既可以由操作系统内核进行,也可以由用户控制进行

    处理机调度

    什么是分级调度?分时系统中有作业调度的概念吗?如果没有,原因是什么?

    分级调度,就是把一项任务按照一定的步骤分解开来,或者由上到下、由高到低、由简单到复杂(反之亦然),按照一定的计划逐步进行“调兵遣将”执行并最终完成某项工作

    处理机调度问题实际上也是处理机的分配问题,显然只有那些参与竞争处理及所必需的资源都已得到满足的进程才能享有竞争处理机的资格,这时它们处于内存就绪状态,这些必需的资源包括内存、外设及有关数据结构等

    从而,在进程有资格竞争处理机之前,作业调度程序必须先调用存储管理、外设管理程序,并按一定的选择顺序和策略从输入井中选择出几个处于后备状态的作业,为它们分配资源和创建进程,使它们获得竞争处理机的资格

    另外,由于处于执行状态下的作业一般包括多个进程,而在单机系统中,每一时刻只能有一个进程占有处理机,这样,在外存中,除了处于后备状态的作业外,还存在处于就绪状态而等待得到内存的作业,我们需要有一定的方法和策略为这部分作业分配空间,因此处理机调度需要分级

    一般来说,处理机调度可分为4级

    (1) 作业调度: 又称宏观调度,或高级调度

    (2) 交换调度:又称中级调度。其主要任务是按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态的进程调入内存,或处于内存就绪状态或等待状态的进程交换到外存交换区。交换调度主要涉及到内存管理与扩充

    (3) 进程调度:又称微观调度或低级调度。其主要任务是按照某种策略和方法选取一个处于就绪状态的进程占用处理机。在确立了占用处理机的进程之后,系统必须进行进程上下文切换以建立与占用处理机进程相适应的执行环境

    (4) 线程调度:进程中相关堆栈和控制表等的调度

    作业调度的主要功能?

    作业调度的主要功能有:

    记录系统中各作业的状况

    按一定的原则对外存输入井上的大量后备作业进行选择

    给选出的作业分配内存、输入输出设备等必要的资源,并建立相应进程,使该作业的相关进程获得竞争处理机的权利

    当作业执行完毕时,还负责回收系统资源

    作业调度的性能的评价标准是什么?这些评价标准能在任何情况下都能反映调度策略的优劣吗?

    作业调度的性能评价标准

    对所有作业应该是公平合理的

    应使设备有高的利用率

    每天执行尽可能多的作业

    有快的响应时间

    这些评价标准不能在任何情况下都能反映调度策略的优劣,对于批处理系统,由于主要用于计算,因而对于作业的周转时间要求较高,从而作业的平均周转时间或平均带权周转时间被用来衡量调度程序的优劣

    但对于分时系统来说,平均响应时间又被用来衡量调度策略的优劣。对于分时系统,除了要保证系统吞吐量大、资源利用率高之外,还应保证用户能够容忍的响应时间

    因此,在分时系统中,仅仅用周转时间或带权周转时间来衡量调度性能是不够,对于实时系统,衡量调度算法优劣的主要标志则是满足用户要求的时限时间

    进程调度的功能有哪些?

    进程调度的功能有:

    记录和保存系统中所有进程的执行情况

    选择占有处理机的进程

    进行进程上下文切换

    进程调度的时机有哪几种?

    进程调度的时机有:

    正在执行的进程执行完毕,这时如果不选择新的就绪进程执行,将浪费处理机资源

    执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等待状态

    执行中进程调用了P原语操作,从而因资源不足而被阻塞,或调用了V原语操作激活了等待资源的进程队列

    执行中进程提出I/O请求后被阻塞

    在分时系统中时间片已经用完

    在执行完系统调用等系统程序后返回用户程序时,可看做系统进程执行完毕,从而调度选择一新的用户进程执行

    在CPU执行方式是可剥夺时,还有,就绪队列中的某进程的优先级变得高于当前执行进程的优先级,从而也将引发进程调度

    什么是多处理机系统?

    多处理机是具有多个处理机的计算机,能够大大提高计算机的处理速度

    多处理机的结构分为共享存储器结构分布式存储器结构2种

    共享存储器结构:多个处理单元通过网络(内部连接)共享集中的主存储器,主存储器由多个并行的存储体组成,而每个CU都有自己的控制单元(这是与并行处理机的不同点)

    系统资源易管理、利用,程序员易编程,但是处理机数目少,不易扩充

    分布式存储多处理机:每个处理机都有自己的控制器、自己的存储单元,CPU及存储器等构成多个较为独立的部分,各个部分通过网络(内部连接)协调工作

    特点结构灵活易扩充,但是,任务传输以及任务分配算法复杂,通常要设计专有算法

    并行处理系统,计算机网络,分布式系统和多处理机系统的操作系统之间有何区别?

    并行操作系统是一种挖掘现代高性能计算机和现代操作系统的潜力的计算机操作系统,能够最大限度地提高并行计算系统的计算能力

    并行操作系统是针对计算机系统的多处理器要求设计,它除了完成单一处理器系统同样的作业与进程控制任务外,还必须能够协调系统中多个处理器同时执行不同作业和进程,或者在一个作业中由不同处理器进行处理的系统协调

    因此,在系统的多个处理器之间活动的分配、调度也是操作系统的主要任务

    网络操作系统,是一种能代替操作系统的软件程序,是网络的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统,借由网络达到互相传递数据与各种消息,分为服务器及客户端

    而服务器的主要功能是管理服务器和网络上的各种资源和网络设备的共用,加以统合并控管流量,避免有瘫痪的可能性,而客户端就是有着能接收服务器所传递的数据来运用的功能,好让客户端可以清楚的搜索所需的资源

    分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行,它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面

    它是一种特殊的多处理器计算机系统,各处理器通过网络构成统一的系统,系统采用分布式计算结构,即把原来系统内中央处理器处理的任务分散给相应的处理器,实现不同功能的各个处理器相互协调,共享系统的外设与软件,这样就加快了系统的处理速度,简化了主机的逻辑结构

    多处理机操作系统一般应用于并行处理机,并行处理机又叫SIMD计算机,它是单一控制部件控制下的多个处理单元构成的阵列,所以又称为阵列处理机。多处理机是由多台独立的处理机组成的系统

    并行处理系统,计算机网络,分布式系统和多处理机系统的操作系统这四个各有特点利弊:

    并行操作系统:

    传统的操作系统为了提高硬件资源的利用效率,采用了多任务并发执行的技术,即通过切换不同的用户程序以达到多道程序的运行目的。而并行操作系统是要提供真正的多道程序运行环境。当可运行的用户程序数目小于或者等于处理器个数,它们将真正地得到并行执行。并行操作系统除了要管理各个节点机之外,还要负责各节点与宿主机的通信以及节点机相互之间的通信和同步等功能

    早期的并行操作一般是在单机操作系统的基础上扩展通信模块、分布式文件系统或网络服务器等组成。已有微核心化、面向对象等全新的并行操作系统出现

    网络操作系统:

    网络操作系统是网络上各计算机能方便而有效地共享网络资源,为网络用户提供所需的各种服务的软件和有关规程的集合。网络操作系统与通常的操作系统有所不同,它除了应具有通常操作系统应具有的处理机管理、存储器管理、设备管理和文件管理外,还应具有以下两大功能:

    提供高效、可靠的网络通信能力

    提供多种网络服务功能,如:远程作业录入并进行处理的服务功能,文件转输服务功能,电子邮件服务功能,远程打印服务功能

    分布式操作系统:

    在分布式数据库系统里不强调集中控制概念,它具有一个以全局数据库管理员为基础的分层控制结构,但是每个局部数据库管理员都具有高度的自主权

    在分布式数据库系统中数据独立性概念也同样重要,然而增加了一个新的概念,就是分布式透明性。所谓分布式透明性就是在编写程序时好像数据没有被分布一样,因此把数据进行转移不会影响程序的正确性。但程序的执行速度会有所降低

    与集中式数据库系统不同的是,数据冗余在分布式系统中被看作是所需要的特性,其原因在于:首先,如果在需要的节点复制数据,则可以提高局部的应用性

    其次,当某节点发生故障时,可以操作其它节点上的复制数据,因此这可以增加系统的有效性,当然,在分布式系统中对最佳冗余度的评价是很复杂的

    优点:利用分布式计算,以及灵活的配置,最大限度利用网络上的计算资源,缺点:过分依赖网络,一旦网络出现问题,很可能导致计算出现各种问题;容易造成对保密数据的非法访问

    多处理机操作系统:

    多处理机的体系结构由若干台独立的计算机组成,每台计算机能够独立执行自己的程序。在多处理机系统中,处理机与处理机之间通过互连网络进行连接,从而实现程序之间的数据交换和同步

    多处理机属于多指令流多数据流系统,即MIMD,它和SIMD(单指令流多数据流系统的并行处理机)相比,在五方面有很大差别(不展开):

    结构灵活性

    程序并行性

    并行任务派生

    进程同步

    资源分配和任务调度

    优点:允许多个进程同时运行在多个处理机上,对于大型计算任务,相对单处理机,性能有较大的提升,缺点:处理器的数量不可以随意增加,即计算能力有上限。

    什么是实时调度?与非实时调度的区别是什么?

    实时调度是为了完成实时处理任务而分配计算机处理器的调度方法

    实时处理任务要求计算机在用户允许的时限范围内给出计算机响应信号。实时处理任务可分为硬实时任务软实时任务

    硬实时任务要求计算机系统必须在用户给定的时限内处理完毕,软实时任务允许计算机系统在用户给定的时限左右处理完毕

    针对硬实时任务和软实时任务,计算机系统可以有不同的实时调度算法,这些算法采用基于优先级的抢先式调度策略,具体地说,大致有如下几类:

    ①静态表驱动模式

    该模式用于周期性实时调度,它在任务到达之前对各任务抢占处理机的时间进行分析,并根据分析结果进行调度

    ②静态优先级驱动的抢先式调度模式

    该模式也进行静态分析。分析结果不是用于调度,只是用于给各任务指定优先级。系统根据各任务的优先级进行抢先式调度

    ③基于计划的动态模式

    该模式在新任务到达后,将以前调度过的任务与新到达的任务一起统一计划,分配CPU时间

    ④动态尽力而为模式

    该模式不进行任何关于资源利用率的分析,只检查各任务的时限是否能得到满足

    代表性的实时调度算法有两种。即时限式调度法频率单调调度法

    实时调度与非实时调度的主要区别是:

    实时调度所调度的任务有完成时限,而非实时调度没有。从而,实时调度算法的正确与否不仅与算法的逻辑有关,也与调度算法调度的时限有关

    实时调度要求较快的进程或线程切换时间,而非实时调度的进程或线程的切换时间较长

    非实时调度强调资源利用率(批处理系统)或用户共享处理机(分时系统),实时调度则主要强调在规定时限范围内完成对相应设备的控制

    实时调度为抢先式调度,而非实时调度则很少采用抢先式调度

    END,感觉java基础年前赶不完了啊,小结就先不搞了,毕竟还要时间生活不是...

    感谢观看,文笔有限,博客不出彩,还请多多见谅
  • 相关阅读:
    2016CCPC长春
    POJ 3974
    CH 1401
    POJ 1426
    hihocoder 1829
    江南OJ 1151
    POJ 3279
    POJ 3349
    POJ 3278
    ZOJ 3983
  • 原文地址:https://www.cnblogs.com/jokingremarks/p/14380161.html
Copyright © 2011-2022 走看看