本文主要是介绍操作系统理论 第一章(操作系统引论)—第三节(操作系统的基本特性),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
写在前面:
- 本系列笔记主要以《计算机操作系统(汤小丹…)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
- 视频链接:操作系统(汤小丹等第四版)_哔哩哔哩_bilibili
一、并发
1、并行与并发
(1)操作系统就是伴随着“多道程序技术”出现的,因此操作系统和程序并发是一起诞生的,并发性是操作系统最基本的特性之一。另外,操作系统的并发性是通过分时实现的。
(2)并行性是指两个或多个事件在同一时刻发生,而并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。
(3)倘若在计算机系统中有多个处理机,这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序。这样,多个程序便可同时执行。
①单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行。
②多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。
2、进程的概念
(1)所谓进程,是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。
(2)进程可以看作是一个程序的执行过程,程序执行前需要被放在内存中才能被CPU处理。
(3)多个进程之间可以并发执行和交换信息。
(4)关于进程的内容在下一章将会详细介绍。
二、共享
1、共享的概念
在OS环境下的资源共享或称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。
2、互斥共享方式
系统中的某些资源,如打印机、磁带机等,虽然可以提供给多个进程(线程)使用,但应规定在一段时间内,只允许一个进程访问该资源,为此在系统中应建立一种机制,以保证多个进程对这类资源的互斥访问。
当进程A要访问某资源时,必须先提出请求,若此时该资源空闲,系统便可将之分配给请求进程A使用,此后若再有其它进程也要访问该资源,只要A未用完就必须等待,仅当A进程访问完并释放系统资源后,才允许另一进程对该资源进行访问。这种资源共享方式称为互斥式共享,把这种在一段时间内只允许一个进程访问的资源,称为临界资源(或独占资源)。系统中的大多数物理设备,以及栈、变量和表格,都属于临界资源,都只能被互斥地共享。
3、同时访问方式
系统中还有另一类资源允许在一段时间内由多个进程“同时”对它们进行访问,这里所谓的“同时”在单处理机环境下是宏观意义上的,而在微观上,这些进程对该资源的访问是交替进行的。
典型的可供多个进程“同时”访问的资源是磁盘设备。
三、虚拟
1、虚拟的概念
在OS中,把通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能称为“虚拟”,前者是实的,即实际存在的,而后者是虚的,是用户感觉上的东西。相应地,把用于实现虚拟的技术称为虚拟技术。
在OS中是利用时分复用和空分复用技术来实现“虚拟”的。
2、时分复用技术
时分复用技术能提高资源利用率的根本原因在于,它利用某设备为一用户服务的空闲时间,又转去为其它用户服务,使设备得到最充分的利用。
①虚拟处理机技术。利用多道程序设计技术,为每道程序建立至少一个进程,让多道程序并发执行,此时虽然系统中只有一台处理机,但通过分时复用的方法,能实现同时(宏观上)为多个用户服务,使每个终端用户都认为是有一个处理机在专门为他服务,亦即利用多道程序设计技术,可将一台物理上的处理机虚拟为多台逻辑上的处理机,在每台逻辑处理机上运行一道程序,我们把用户所感觉到的处理机称为虚拟处理器。
②虚拟设备技术。利用虚拟设备技术,也通过分时复用的方法,将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备,这样便可使原来仅允许在一段时间内由一个用户访问的设备(即临界资源),变为允许多个用户“同时”访问的共享设备,既宏观上能“同时”为多个用户服务。例如原来的打印机属于临界资源,而通过虚拟设备技术又可以把它变为多台逻辑上的打印机,供多个用户“同时”打印。
3、空分复用技术
空分复用技术是利用存储器的空闲空间分区域存放和运行其它的多道程序,以此来提高内存的利用率。不过,单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量的功能,还必须引入虚拟存储技术才能达到此目的。
虚拟存储技术在本质上是实现内存的分时复用,即它可以通过分时复用内存的方式,使一道程序仅在远小于它的内存空间中运行。例如,一个100 MB的应用程序之所以可以运行在30 MB的内存空间,实质上就是每次只把用户程序的一部分调入内存运行,运行完成后将该部分换出,再换入另一部分到内存中运行,通过这样的置换功能,便实现了用户程序的各个部分分时地进入内存运行。
四、异步
1、同步和异步的概念
(1)同步指的是任务按照顺序依次执行,并且每个任务必须等待前一个任务完成后才能开始执行。在同步模式下,任务之间的执行是阻塞的,即一个任务的执行会阻碍其它任务的进行,直到该任务结束。
(2)异步指的是任务可以并发或并行地执行,任务之间相互独立。在异步模式下,任务的执行是非阻塞的,即一个任务的执行不会等待其它任务的完成,而是通过回调函数、事件监听等机制实现任务的并发执行和结果的返回。
2、操作系统(进程)的异步性
在多道程序环境下,系统允许多个进程并发执行。在单处理机环境下,由于系统中只有一台处理机,因而每次只允许一个进程执行,其余进程只能等待。当正在执行的进程提出某种资源要求时,如打印请求,而此时打印机正在为其它进程打印,由于打印机属于临界资源,因此正在执行的进程必须等待,并释放出处理机,直到打印机空闲,并再次获得处理机时,该进程方能继续执行。可见,由于资源等因素的限制,进程的执行通常都不可能“一气呵成”,而是以“停停走走”的方式运行。
对于内存中的每个进程,在何时能获得处理机运行,何时又因提出某种资源请求而停,以及进程以怎样的速度向前推进,每道程序总共需要多少时间才能完成等等,都是不可预知的,也就是说,进程是以人们不可预知的速度向前推进的,此即进程的异步性。
这篇关于操作系统理论 第一章(操作系统引论)—第三节(操作系统的基本特性)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!