操作系统基础知识大全_1.docx
《操作系统基础知识大全_1.docx》由会员分享,可在线阅读,更多相关《操作系统基础知识大全_1.docx(108页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统基础知识大全操作系统基础知识大全怀健.1、操作系统的功能1、进程管理:实际上是对处理机的执行时间进行管理,采用多道程序等技术将CPU的时间合理分配给每个任务。比方:进程控制、进程同步、进程通信、进程调度。2、文件管理:主要有存储空间管理、目录管理、文件读写。3、存储管理:对主存储器空间进行管理,主要包括存储空间分配回收、存储保护、地址映射、主存扩大等。4、设备管理:对硬件设备的管理。包括分配、启动、完成、回收。5、作业管理:包括任务、界面管理、人机交互、语音控制、虚拟现实等。三、操作系统分类1、批处理操作系统分为单道批处理、多道批处理。单道批处理:早期的操作系统,一次只要一个作业装入内
2、存执行。作业由用户程序、数据和作业讲明书组成。一个作业运行结束后,自动调入同批的下一个作业。多道批处理:允很多个作业装入内存执行,在任意时刻,作业都处于开场和结束点之间。多道批处理系统特点:多道、宏观上并行运行、微观上串行运行。2、分时操作系统分时操作系统是将CPU的工作划分为很短的时间片。轮流为各个终端的用户服务。分时操作系统特点:多路性、独立性、交互性、及时性。3、实时操作系统实时操作系统对交互能力要求不高,要能对外来信息足够快的速度响应和处理。分为实时控制系统和实时信息处理系统。实时控制系统:主要用于生产经过的自动控制,比方自动收集、飞机的自动驾驶等。实时信息处理系统:主要是实时信息处理
3、,比方飞机订票系统、情报检索系统等。4、网络操作系统网络操作系统使互联网能方便有效的分享网络资源,为网络用户提供各种服务软件和有关协议的几何。比方电子邮件、文件传输、分享硬盘等。网络操作系统分为如下三类:1、集中式:系统的基本单元由一台主机和若干台主机相连的终端构成,将多台主机连接处理构成网络。比方UNI_。2、客户端/服务器形式:该形式分为客户端和服务器。服务器是网络控制的中心,向客户端提供多种服务,客户端主要是访问服务端的资源。3、对等形式(P2P):相当于每一台客户端都能够给其他客户端提供资源服务。5、分布式操作系统分布式操作系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机
4、无主次之分,任意两台计算机都能够交换信息。分布式操作系统能直接对各类资源进行动态分配和调度、任务划分、信息传输协调工作,为用户提供一个统一的界面、标准的接口,用户通过这一界面实现所需要的操作和使用系统资源。6、微机操作系统目前主流的操作系统有Linu_、MacOS、Windows。7、嵌入式操作系统嵌入式操作系统运行在嵌入式智能芯片环境中,对整个智能芯片以及操作、控制、部件装置等资源进行统一协调、处理、指挥、控制。嵌入式操作系统特点:微型化、可定制、实时性、可靠性、易移植性。操作系统基础知识一、概述1.操作系统基本特征1.并发并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运
5、行多个指令。并行需要硬件支持,如多流水线或者多处理器。操作系统通过引入进程和线程,使得程序能够并发运行。2.分享分享是指系统中的资源能够被多个并发进程共同使用。有两种分享方式:互斥分享和同时分享。互斥分享的资源称为临界资源,例如打印机等,在同一时间只允许一个进程访问,需要用同步机制来实现对临界资源的访问。3.虚拟虚拟技术把一个物理实体转换为多个逻辑实体。利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务。主要有两种虚拟技术:时分复用技术和空分复用技术。例如多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占有处理器,每次只执行一小个时间片并快速切换。4.异步异步指
6、进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。但只要运行环境一样,OS需要保证程序运行的结果也要一样。2.操作系统基本功能1.进程管理进程控制、进程同步、进程通信、死锁处理、处理机调度等。2.内存管理内存分配、地址映射、内存保护与分享、虚拟内存等。3.文件管理文件存储空间的管理、目录管理、文件读写管理和保护等。4.设备管理完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率。主要包括缓冲管理、设备分配、设备处理、虛拟设备等。3.系统调用假如一个进程在用户态需要使用内核态的功能,就进行系统调用进而陷入内核,由操作系统代为完成。4.大内核和微内核1.大内核大内核是将操作系
7、统功能作为一个严密结合的整体放到内核。由于各模块分享信息,因而有很高的性能。2.微内核由于操作系统不断复杂,因而将一部分操作系统功能移出内核,进而降低内核的复杂性。移出的部分根据分层的原则划分成若干服务,互相独立。在微内核构造下,操作系统被划分成小的、定义良好的模块,只要微内核这一个模块运行在内核态,其余模块运行在用户态。由于需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失。5.中断分类1.外中断由CPU执行指令以外的事件引起,如I/O完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。2.异常由CPU执行指令的内部事件引
8、起,如非法操作码、地址越界、算术溢出等。6.什么是堆和栈?讲一下堆栈都存储哪些数据?栈区(stack)由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据构造中的栈。堆区(heap)一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。数据构造中这两个完全就不放一块来讲,数据构造中栈和队列才是好基友,我想新手也很容易区分。我想需要区分的情况肯定不是在数据构造话题下,而大多是在OS关于不同对象的内存分配这块上。简单讲的话,在C语言中:intaN;/goonastackint_a=(int_)malloc(sizeof(int)_N);/goonaheap7.怎样
9、理解分布式锁?分布式锁,是控制分布式系统之间同步访问分享资源的一种方式。在分布式系统中,经常需要协调他们的动作。假如不同的系统或是同一个系统的不同主机之间分享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止相互干扰来保证一致性,在这种情况下,便需要使用到分布式锁。二、进程管理1.进程与线程1.进程进程是资源分配的基本单位,用来管理资源(例如:内存,文件,网络等资源)进程控制块(ProcessControlBlock,PCB)描绘进程的基本信息和运行状态,所谓的创立进程和撤销进程,都是指对PCB的操作。(PCB是描绘进程的数据构造)下列图显示了4个程序创立了4个进程,这4个进程能够并
10、发地执行。2.线程线程是独立调度的基本单位。一个进程中能够有多个线程,它们分享进程资源。QQ和阅读器是两个进程,阅读器进程里面有很多线程,例如HTTP请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在阅读器中点击一个新链接进而发起HTTP请求时,阅读器还能够响应用户的其它事件。3.区别(一)拥有资源进程是资源分配的基本单位,但是线程不拥有资源,线程能够访问从属进程的资源。(二)调度线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程内的线程切换到另一个进程中的线程时,会引起进程切换。(三)系统开销由于创立或撤销进程时,系统都要为之分配或回收资源,如内存空间、I
11、/O设备等,所付出的开销远大于创立或撤销线程时的开销。类似地,在进行进程切换时,涉及当前执行进程CPU环境的保存及新调度进程CPU环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小。(四)通信方面进程间通信(IPC)需要进程同步和互斥手段的辅助,以保证数据的一致性。而线程间能够通过直接读/写同一进程中的数据段(如全局变量)来进行通信。2.进程状态的切换(生命周期)就绪状态(ready):等待被调度运行状态(running)阻塞状态(waiting):等待资源应该注意下面内容:只要就绪态和运行态能够互相转换,其它的都是单向转换。就绪状态的进程通过调度算法进而获得CPU时间,转为运行状
12、态;而运行状态的进程,在分配给它的CPU时间片用完之后就会转为就绪状态,等待下一次调度。阻塞状态是缺少需要的资源进而由运行状态转换而来,但是该资源不包括CPU时间,缺少CPU时间会从运行态转换为就绪态。进程只能本人阻塞本人,由于只要进程本身才知道何时需要等待某种事件的发生3.进程调度算法不同环境的调度算法目的不同,因而需要针对不同环境来讨论调度算法。1.批处理系统批处理系统没有过多的用户操作,在该系统中,调度算法目的是保证吞吐量和周转时间(从提交到终止的时间)。1.1先来先服务先来先服务first-comefirst-serverd(FCFS)根据请求的顺序进行调度。有利于长作业,但不利于短作
13、业,由于短作业必须一直等待前面的长作业执行完毕才能执行,而长作业又需要执行很长时间,造成了短作业等待时间过长。1.2短作业优先短作业优先shortestjobfirst(SJF)按估计运行时间最短的顺序进行调度。长作业有可能会饿死,处于一直等待短作业执行完毕的状态。由于假如一直有短作业到来,那么长作业永远得不到调度。1.3最短剩余时间优先最短剩余时间优先shortestremainingtimene_t(SRTN)按估计剩余时间最短的顺序进行调度。2.交互式系统交互式系统有大量的用户交互操作,在该系统中调度算法的目的是快速地进行响应。2.1时间片轮转将所有就绪进程按FCFS(先来先服务)的原则
14、排成一个队列,每次调度时,把CPU时间分配给队首进程,该进程能够执行一个时间片。当时间片用完时,由计时器发出时钟中断,调度程序便停止该进程的执行,并将它送往就绪队列的末尾,同时继续把CPU时间分配给队首的进程。时间片轮转算法的效率和时间片的大小有很大关系。由于进程切换都要保存进程的信息并且载入新进程的信息,假如时间片太小,会导致进程切换得太频繁,在进程切换上就会花太多时间。2.2优先级调度为每个进程分配一个优先级,按优先级进行调度。为了防止低优先级的进程永远等不到调度,能够随着时间的推移增加等待进程的优先级。2.3多级反应队列假如一个进程需要执行100个时间片,假如采用时间片轮转调度算法,那么
15、需要交换100次。多级队列是为这种需要连续执行多个时间片的进程考虑,它设置了多个队列,每个队列时间片大小都不同,例如1,2,4,8,.。进程在第一个队列没执行完,就会被移到下一个队列。这种方式下,之前的进程只需要交换7次。每个队列优先权也不同,最上面的优先权最高。因而只要上一个队列没有进程在排队,才能调度当前队列上的进程。能够将这种调度算法看成是时间片轮转调度算法和优先级调度算法的结合。3.实时系统实时系统要求一个请求在一个确定时间内得到响应。分为硬实时和软实时,前者必须知足绝对的截止时间,后者能够容忍一定的超时。参考资料:操作系统典型调度算法_C语言中文网4.进程同步1.临界区对临界资源进行
16、访问的那段代码称为临界区。为了互斥访问临界资源,每个进程在进入临界区之前,需要先进行检查。/entrysection/criticalsection;/e_itsection2.同步与互斥同步:多个进程按一定顺序执行;互斥:多个进程在同一时刻只要一个进程能进入临界区。3.信号量P和V是来源于两个荷兰语词汇,P()-prolaag(荷兰语,尝试减少的意思),V()-verhoog(荷兰语,增加的意思)信号量(Semaphore)是一个整型变量,能够对其执行down和up操作,也就是常见的P和V操作。down:假如信号量大于0,执行-1操作;假如信号量等于0,进程睡眠,等待信号量大于0;(阻塞)u
17、p:对信号量执行+1操作,唤醒睡眠的进程让其完成down操作。(唤醒)down和up操作需要被设计成原语,不可分割,通常的做法是在执行这些操作的时候屏蔽中断。假如信号量的取值只能为0或者1,那么就成为了互斥量(Mute_),0表示临界区已经加锁,1表示临界区解锁。typedefintsemaphore;semaphoremute_=1;voidP1()down(mute_);/临界区up(mute_);voidP2()down(mute_);/临界区up(mute_);使用信号量实现生产者-消费者问题问题描绘:使用一个缓冲区来保存物品,只要缓冲区没有满,生产者才能够放入物品;只要缓冲区不为空,
18、消费者才能够拿走物品。由于缓冲区属于临界资源,因而需要使用一个互斥量mute_来控制对缓冲区的互斥访问。为了同步生产者和消费者的行为,需要记录缓冲区中物品的数量。数量能够使用信号量来进行统计,这里需要使用两个信号量:empty记录空缓冲区的数量,full记录满缓冲区的数量。其中,empty信号量是在生产者进程中使用,当empty不为0时,生产者才能够放入物品;full信号量是在消费者进程中使用,当full信号量不为0时,消费者才能够取走物品。注意,不能先对缓冲区进行加锁,再测试信号量。也就是讲,不能先执行down(mute_)再执行down(empty)。假如这么做了,那么可能会出现这种情况:
19、生产者对缓冲区加锁后,执行down(empty)操作,发现empty=0,此时生产者睡眠。消费者不能进入临界区,由于生产者对缓冲区加锁了,也就无法执行up(empty)操作,empty永远都为0,那么生产者和消费者就会一直等待下去,造成死锁。#defineN100typedefintsemaphore;semaphoremute_=1;semaphoreempty=N;semaphorefull=0;voidproducer()while(TRUE)intitem=produce_item();/生产一个产品/down(empty)和down(mute_)不能交换位置,否则造成死锁down(e
20、mpty);/记录空缓冲区的数量,这里减少一个产品空间down(mute_);/互斥锁insert_item(item);up(mute_);/互斥锁up(full);/记录满缓冲区的数量,这里增加一个产品voidconsumer()while(TRUE)down(full);/记录满缓冲区的数量,减少一个产品down(mute_);/互斥锁intitem=remove_item();up(mute_);/互斥锁up(empty);/记录空缓冲区的数量,这里增加一个产品空间consume_item(item);4.管程管程(英语:Monitors,也称为监视器)是一种程序构造,构造内的多个子程
21、序(对象或模块)构成的多个工作线程互斥访问分享资源。使用信号量机制实现的生产者消费者问题需要客户端代码做很多控制,而管程把控制的代码独立出来,不仅不容易出错,也使得客户端代码调用更容易。管程是为了解决信号量在临界区的PV操作上的配对的费事,把配对的PV操作集中在一起,生成的一种并发编程方法。其中使用了条件变量这种同步机制。c语言不支持管程,下面的示例代码使用了类Pascal语言来描绘管程。示例代码的管程提供了insert()和remove()方法,客户端代码通过调用这两个方法来解决生产者-消费者问题。monitorProducerConsumerintegeri;conditionc;proc
22、edureinsert();begin/.end;procedureremove();begin/.end;endmonitor;管程有一个重要特性:在一个时刻只能有一个进程使用管程。进程在无法继续执行的时候不能一直占用管程,否者其它进程永远不能使用管程。管程引入了条件变量以及相关的操作:wait()和signal()来实现同步操作。对条件变量执行wait()操作会导致调用进程阻塞,把管程让出来给另一个进程持有。signal()操作用于唤醒被阻塞的进程。使用管程实现生产者-消费者问题/管程monitorProducerConsumerconditionfull,empty;integercou
23、nt:=0;conditionc;procedureinsert(item:integer);beginifcount=Nthenwait(full);insert_item(item);count:=count+1;ifcount=1thensignal(empty);end;functionremove:integer;beginifcount=0thenwait(empty);remove=remove_item;count:=count-1;ifcount=N-1thensignal(full);end;endmonitor;/生产者客户端procedureproducerbeginw
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 基础知识 大全 _1
限制150内