浅谈操作系统概念,作用,特性及分类
操作系统概念:
操作系统是计算机系统中的一个系统软件,是一些程序模块的集合
操作系统作用:
1.资源的管理者
2.向用户提供各种服务
3.对硬件机器的扩展
第1点中:
资源分配策略——算法
静态分配策略:把进程所有需要的资源先都分配给它,但这就导致了有些时候一些资源没有被该进程用到,这就导致了资源浪费问题
动态分配策略:进程什么时候需要就什么时候给它,若该资源已被占用则该进程阻塞并进入该资源相应的等待队列中
资源管理:进/线程管理,存储管理,文件管理,设备管理,用户接口管理等等
OS特征:
并发,共享,虚拟,随机
并发/并行
之前在知乎上看到了关于这两者有趣的比喻:
设想一个场景你正在吃饭,然后有个电话打进来:
1.你等吃完饭后再去接电话,这说明你不支持并发也不支持并行
2.你先接电话,接完后吃饭,这说明你支持并发
3.你一边吃饭一边打电话,这说明你支持并行
这是具体到人,即人为处理器。
下一个具体到嘴巴,即嘴巴为处理器:
1.你咽一口饭,然后接一句电话,这说明你支持并发,有个先后逻辑关系,就是之前的逻辑上的概念
2.你咽一口饭还要说一句话,一张嘴办不到这事,至少有两张嘴引申过来就需要两个或两个以上的处理器,就是之前物理上的概念
另个说法:
并发是指程序的结构,并行为程序运行时的状态
并行即为同时执行,判断一个程序是否处于并行状态,看同一时间点是否有超过1个工作单位运行,其中单线程是无法达到并行,因为只有一个工作单位,要将其达到多线程或多进程即可并行。
并发为程序结构使多个操作可以在重叠时间段内进行
这样看来并行当然是在重叠时间段内进行,但
task1与task2在重叠的时间段里进行,但是同一时间点仅仅只有一个代码段(黑色体为某代码)执行,这不是并行便为并发,并发并不描述程序执行的状态,它描述的是一种设计,是程序的结构
个人理解:
并发:进程B开始时间是在进程A开始时间与结束时间之间(强调时间段),称A与B并发(逻辑上)
并行:同一时间(强调时间点)两个进程运行在不同机器或同一机器不同核心上(物理上) 可能在平时用的时候并不是很注重这些方面的细分 → 。→
共享:
操作系统与多个用户程序共同使用计算机系统中资源,其中分为互斥共享(资源不能同时使用),同时共享(资源可以同时使用)。
虚拟:
一个物理实体银蛇为人若干个对应逻辑实件(分时或者分空间)
存储器中每个进程都有独立的的虚拟地址空间(存代码,数据,堆栈)
随机:
OS要对不可预测的事件进行响应处理
OS分类:
①批处理操作系统
工作方式:
1.用户将作业(作业:由作业说明书(由作业控制语言编写的),用户程序,数据组成,而且都是以卡片的形式,输入设备为卡片机)交给系统操作员
2.系统操作员将许多用户作业组成一批作业输入到计算机系统中,在系统中形成一个自动转接的连续的作业留
3.启动OS
4.OS自动一次执行每个作业,用户无法干预这一过程
5.由操作员将执行结果交给用户
追求目标:提高资源利用率,增加作业处理吞吐量
总体过程:从卡片机读入用户作业和编译链接程序,编译链接用户作业生成可执行程序,执行程序,输出执行结果
问题:慢速I/O设备与CPU处理速度相差太大,这就导致了当CPU需要数据处理时,I/O设备半天读不进来给CPU,或者半天输不出去数据,此时CPU都要等待即为空闲状态。
解决方案:
出现了卫星机:慢速I/O设备和高效计算机间再加一个较差的计算机作为缓冲,就像内存与CPU间加上了cache,卫星机接收用户的输入与输出,中间结果存在磁带上,这样CPU就无需等待,这样解决方案叫脱机,即脱离了中间那台高效的计算机。
批处理系统又分成:
单道批处理OS:
多道批处理OS:
spooling技术:
利用磁盘做缓冲,将输入,计算,输出分别组成独立的任务流,使I/O和计算并行(假脱机:磁盘在搞笑的计算机上)
1.用户作业输入磁盘输入井
2.按照某种调度策略,选几个搭配得当的作业调入内存
3.作业运行结果输出到磁盘的输出井
4.运行结果从输出井到打印机 (输入输出只到输入或输出井,主机不用直接与慢速的I/O打交道,高效快速)
ps:现代打印机仍用这种技术
应用spooling技术后:
②分时操作系统
工作方式:多个终端(只有I/O设备没有计算能力)连接到同一主机中,然后OS将CPU时间分成若干个片段,OS以时间片为单位,轮流为每个终端用户服务,每次服务使用掉一个时间片
追求目标:及时响应 ps.响应时间:以终端发出命令到系统给予回答所经历的时间
③实时操作系统
指计算机能及时响应外部时间请求,在规定的严格时间内完成对该事件处理
追求目标:对外部请求在严格时间范围内做出响应
作者水平有限,文章肯定有错还请各位指点!!!感谢!!!