首先先说明这篇操作系统篇是整合了网络优秀博主博客和自己看视频的重点总结出来的,望惠存。(不断更新中)
关于区分并发和并行看我上篇博文,比较通俗易懂。
并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。
并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。(多线程技术主要是利用时间片划分让cpu分时处理多个线程,也就是能同时处理多个任务,而流水线技术是通过流水化任务处理提
高cpu的利用率。)
操作系统通过引入进程和线程,使得程序能够并发运行。
共享是指系统中的资源可以被多个并发进程共同使用。
有两种共享方式:互斥共享和同时共享。
(1)互斥共享
计算机中的某个资源在一段时间内只能允许一个进程访问,别的进程没有使用权
互斥共享的资源称为临界资源(独占资源):在一段时间内只允许一个进程访问的资源,计算机中大多数物理设备及某些软件中的栈、变量和表格都属于临界资源,它们被要求互斥共享
举个例子:比如QQ和微信视频。同一段时间内摄像头只能分配给其中一个进程
(2)同时共享
计算机中的某个资源在在一段时间内可以同时允许多个进程访问
同时共享通常要求一个请求分为几个时间片段间隔的完成,即交替进行,“分时共享”
这里的同时指在宏观上是同时的,在微观上是交替进行访问的,只是cpu处理速度很快,我们感觉不到,在宏观上感觉是在同时进行
举个例子:比如QQ在发送文件A,微信在发送文件B,宏观上两个进程A和B都在访问磁盘,在我们看来是同时进行的,但是在微观上两个进程A和B是交替进行访问磁盘的,只是时间太短,cpu处理速
度太快,我们感觉不到。
虚拟技术把一个物理实体转换为多个逻辑实体。
主要有两种虚拟技术:时分复用技术和空分复用技术。
多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占有处理器,每次只执行一小个时间片并快速切换。
虚拟内存使用了空分复用技术,它将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理
内存的页时,执行页面置换算法,将该页置换到内存中。
异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。
多道程序设计:是指在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。 两个或两个以上程序在计算机系统中同处于开始到结束之间的状态称为多道
程序设计。多道程序技术运行的特征:多道、宏观上并行、微观上串行。
虚拟处理器(CPU):通过多道程序设计技术,采用让多道程序并发执行的方法,分时来使用一个CPU,实际物理上只有一个CPU,但是用户感觉到有多个CPU
操作系统的虚拟技术科归纳为:
CPU调度器、物理内存管理、虚拟内存管理、文件系统管理、终端处理与设备驱动
大内核是将操作系统功能作为一个紧密结合的整体放到内核。
由于各模块共享信息,因此有很高的性能,主要通过函数调用实现各模块功能。
由于操作系统不断复杂,因此将一部分操作系统功能移出内核,从而降低内核的复杂性。移出的部分根据分层的原则划分成若干服务,相互独立。松耦合方式实现操作系统扩展,采用类似消息传递机
制的模式。
在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核(一些重要的模块进程调用等)这一个模块运行在内核态,其余模块运行在用户态。尽可能把内核功能移到用户空间。
因为需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失。目前还很少使用微内核模式,主要还是比较受限于性能。
类似于external core(存于学术界,比较快,因为是基于OS的),但目标不同,主要是为了将VMM使用于分布式计算机,或者云计算等数据中心,这样让大家都能在不同操作系统下使用计算资源。
原文:https://www.cnblogs.com/sjh-dora/p/12845656.html