【总结】操作系统特征----------并行并发/阻塞非阻塞

重点

消息机制(任务调度),内存分布,通信和同步

操作系统的基本类型

批处理系统

提高资源的利用率

单道:内存中任何时候只有一道作业

多道:先分配除处理机以外的硬件资源

特征:资源利用率高/系统吞吐量大/平均周转时间长/无交互能力

分时系统

定义:采用时间片轮转的方式,使一台计算机为多个终端服务,使每个用户得到足够快的时间响应

用户需求:人机交互、共享主机、便于用户上机

实现:

简单分时:单道+轮流交替使用时间单位

前后台分时:前台--运行作业、后台--固定作业

多道分时:cpu调度

特征:多路、独立、及时、交互

实时系统:

系统可及时响应外部事件的需求

实时控制信息:类比航母,卫星,武器

特点:及时、可靠、实时的人机对话、过载保护

OS特征

https://blog.csdn.net/weixin_43914604/article/details/104416461

在这里插入图片描述

  • 并发:两个或多个事件在同一时间间隔内发生,这些事件在宏观上是同时发生的,在微观上是交替发生的, 操作系统的并发性指系统中同时存在着多个运行的程序(是否一定交替?还是可能交替)
  • 并行:两个或多个事件在同一时刻发生

是指两个或多个事件在同一时间间隔内发生。操作系统的并发性是指计算机系统中同时存在多个运行着的程序,因此它应该具有处理和调度多个程序同时执行的能力。

在这种多道程序环境下,一段时间内,宏观上有多个程序在同时运行,而每一时刻,单处理器环境下实际仅能有一道程序执行,故微观上这些程序还是在分时地交替执行。操作系统的并发性是通过分时得以实现的

注意:并行性是指计算机系统具有可以同时进行运算或操作的特性,在同一时间完成两种或两种以上的工作。并行性需要有相关硬件的支持,如多流水线或多处理器硬件环境。

  • 一个单核(CPU)同一时刻只能执行一个程序,因此操作系统会协调多个程序使他们交替进行(这些程序在宏观上是同时发生的,在微观上是交替进行的)
  • 操作系统是伴随着“多道程序技术出现的”,因此操作系统和并发是一同诞生的
  • 在如今的计算机中,一般都是多核cpu的,即在同一时刻可以并行执行多个程序,比如我的计算机是8核的,我的计算机可以在同一时刻并行执行8个程序,但是事实上我们计算机执行的程序并不止8个,因此并发技术是必须存在的,并发性必不可少。
     

共享:

在这里插入图片描述

定义:cpu,存储器,输入输出设备供内存中并发执行的进程共同使用

类型:互斥访问:一个访问完成另一个才访问

          同时访问: 二者同一时刻访问

是指系统中的资源(硬件资源和信息资源)可以被多个并发执行的程序共同使用,而不是被其中一个独占。资源共享有两种方式:互斥访问和同时访问。

并发共享是操作系统的最基本特征,互为依存。并发执行的要求引出了资源的共享;而资源共享的管理又直接影响到程序的并发执行。

虚拟:

在这里插入图片描述

物理实体----(某种技术)-----逻辑上的对应物

虚拟性是一种管理技术,把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物的技术。采用虚拟技术的目的是为用户提供易于使用、方便高效的操作环境。

异步:

(并发执行)在运行环境不同的情况下,相同的输入条件----相同的输出结果

在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底。而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。异步性使得操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误。但是只要运行环境相同,操作系统必须保证多次运行程序,都获得相同的结果。
 

并行和并发

在计算机操作系统(第4版,汤子瀛)中,小标题'并行和并发'的父标题是'并发‘,经过学习,我的理解是并行并发的子集,并发是包含并行的含义的。

并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生。而并发性是指两个或多个事件在同一时间间隔发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行
倘若在计算机系统中有多个处理机,这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行
 

《并发的艺术》 — 〔美〕布雷谢斯

如果某个系统支持两个或者多个动作(Action)同时存在,那么这个系统就是一个并发系统。如果某个系统支持两个或者多个动作同时执行,那么这个系统就是一个并行系统。并发系统与并行系统这两个定义之间的关键差异在于“存在”这个词。

实际上是对线程的操作:

  • 并发:当有多个线程在操作时,如果系统只有一个CPU,把CPU运行时间划分成若干个时间段,分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状态。这种方式我们称之为并发(Concurrent)。并发=间隔发生
  • 并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。   并行=同时进行

归纳总结一下:

           1. 系统中能够并发执行的程序在多核cpu的加持下是能够并行执行的

           2.

               a. 并发:拥有处理多任务的能力,不一定同时进行(没有否定同时执行)

               b. 并行:拥有同时处理多任务的能力,不是间隔执行

 

同步异步阻塞非阻塞

top -H 命令打印线程

 

本质区别

消息的通知机制

同步模式

由处理消息者自己去等待消息是否被触发

所谓同步,就是发起调用后,被调用者处理消息,必须等处理完才直接返回结果,没处理完之前是不返回的,调用者主动等待结果

异步模式

由触发机制来通知处理消息者

所谓异步,就是发起调用后,被调用者直接返回,但是并没有返回结果,等处理完消息后,通过状态、通知或者回调函数来通知调用者,调用者被动接收结果

 

本质区别

涉及到CPU线程调度

阻塞调用

线程挂起,不能做其他事。

所谓阻塞,就是调用结果返回之前,该执行线程会被挂起,不释放CPU执行权,线程不能做其它事情,只能等待,只有等到调用结果返回了,才能接着往下执行,比如一个线程占用了临界区资源,那么其他需要这个资源的线程就必须在临界区等待。等待会导致线程挂起,这种情况就是阻塞。此时如果占用资源的线程不释放资源,那么其他的线程就不能执行。

非阻塞调用

线程活跃,能处理其他事。

所谓非阻塞,就是在没有获取调用结果时,不是一直等待,线程可以往下执行,如果是同步的,通过轮询的方式检查有没有调用结果返回,如果是异步的,会通知回调。它强调的是没有一个线程能够阻碍其他线程的执行,所以线程都会尝试不断的向前执行

所以对于app内部而言,都是线程间通信

但app和fpga,就是进程间通信

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值