【理解操作系统的几个小概念,如作业、进程、程序等】

第一操作系统的定义,什么是操作系统;

1.操作系统是方便客户、管理和控制计算机软硬件资源的系统程序集合;
2.操作系统是一个管家,计算机所有的资源都是操作系统来管理的,运行在计算机的最底层。所以操作系统跟底层硬件联系的比较紧密,在很多操作系统的参考书上可以看到许多关于组成原理的知识,并为上层应用提供支撑,为用户提供良好的用户界面等;
3.操作系统是配置在计算机硬件上的第一层软件(是系统软件),是对硬件系统的首次扩充,将诸多功能覆盖到机器上,扩充成了功能强大的计算机。

操作系统是一种系统软件

系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。

第二,记住操作系统的目标,有四个目标,每一个目标的含义要清楚,这也是我们设计软件时要考虑的;

1、有效性:管理软硬件资源,合理地组织计算机的工作流程,也就是让计算机运行效率更高的意思;
2、方便性:提供良好的、一致的用户接口,屏蔽硬件系统的类型和数量差别;就是说,一个好的操作系统,应该方便用户使用;简单讲,就是越傻瓜越好,所以,一个好的操作系统,应该具备良好的用户界面。比如说,早期的dos是命令式的界面(如shell环境命令行)用计算机作业时,就得学习,限制了计算机的应用,Windows的出现,图形用户界面,用户用鼠标就可以控制程序的流向,很容易使用,极大的推动了计算机应用的普及,就是小白也都懂,良好的人机交互界面这个目标很重要;
3、开放性:OS遵循统一的标准进行规范的软件开发,彼此兼容,方便互联,就是标准,大家都遵守同一个标准,就可以较好的实现兼容;
4、可扩充性:因为符合标准,所以在规范的结构下,易于实现多个系统之间的资源共享和相互操作,易于功能扩充、和系统升级,可扩充性,就是好的软件应该易于扩充,而不是推倒重来,可更新,可根据用户需求进行完善;

第三,推动操作系统发展的动力,简单讲就是每一时期的当时的矛盾推动的

(还是照搬书上,哈~)

1.提高计算机资源利用率的需要;
在计算机初期,计算机系统特别昂贵,推动计算机系统中的各种资源的利用率,这是OS最初发展的推动力。
2.方便用户;
用户在上机、调试程序时的不方便便成了主要矛盾,这又成为了继续推动OS发展的主要因素。
3.计算机器件的不断更新迭代;
微机芯片的不断更新换代,使得计算机的性能快速提高,从而推动了OS的功能和性能增强和提高。
4.计算机体系结构的不断发展;
计算机体系结构的发展,也不断推动着OS的发展,并产生新的OS类型。
5.不断提出新的应用需求;
操作系统能如此迅速发展的另一个重要原因是,人们不断提出新的应用需求。

梳理一下历史,我们可以发现,推动进步的其实就是矛盾;

大概的梳理一下操作系统的发展历史进程,可以体会一下,每个时期的矛盾,是怎么推动操作系统不断向前发展的早期人工阶段,最主要的矛盾就是cpu利用率太低,用户独占机器,昂贵的cpu资源大部分时间处于空闲状态。。。这个阶段,特别是输入输出占用了大量时间,因此,提出脱机的概率,本质就是把消耗大量时间的输入输出操作从主机中剥离出来,用独立的输入输出设备来完成输入输出操作,大量减少了I/0时间。
单道批处理的出现,主要是用监督程序来完成作业的自动切换,减少了人工切换的时间,提高计算机的利用率。
单道批处理时期,主要矛盾依然是,昂贵的cpu资源的利用率不高。
那为什么CPU资源利用率不高?
首先要理解单道的含义,简单的说,单道,就是指某个时刻,计算机内存只有一个作业的。同理,某个时刻,计算机内存有多个作业的,叫多道。我们可以想象一下,一个典型的程序,基本上都是输入->计算->输出。相比cpu速度,磁盘I/0速度,是很慢的。所以一个程序的整个运行中,大部分时间都在做输入输出操作,cpu大部分时间处于空闲,这对于昂贵的cpu资源是难以忍受的 ;所以,早期的学者思考:可不可以在cpu空闲的时间,运行别的程序。因此,提出了多道的概念 即:多个程序一起进入内存,一个程序停下来做I/0操作的时候,运行另外一个程序,这极大的提高了cpu的利用率。
多道批处理系统,基本上解决了cpu利用率的问题,但是多道批处理有一个显著的问题,就是无交互能力,特别是后期,这个矛盾特别突出,因此,分时操作系统应运而生(分时系统的特征:多路性,独立性,及时性,交互性);
描述多道的时候,提到一个指标,叫周转时间;
①周转时间,就是提交作业开始,一直到作业完成,所用的时间。
还有一个词,叫吞吐量:单位时间里完成的任务数,叫吞吐量,这个值当然越大,越好;
②除了周转时间,还有一个响应时间,响应时间:用户提出请求到系统首次响应请求的时间。

那么,批处理是啥意思?:

批,就是一批,一次提交一批作业。这一批作业运行完之前,用户不可以干预,即使运行错了,也要等这一批处理完,才能处理,只能傻等。分时操作系统的出现,正是为了解决这个矛盾,因此,分时系统,最重要的指标就是响应时间:从用户向系统发出请求,到系统响应为止的时间,这个时间越短,响应越快,交互性越好。著名的unix就是属于这种,最后,为了适应某些实时性的场合,出现了实时操作系统。
实时分两种,硬实时,软实时:
硬实时,在给定时间必须做出处理的,不然,就会出现灾难性的后果,比如,导弹的运行,偏离轨道了,要里面进行处理; 再比如,发射卫星、控制核反应堆的应用系统,这些系统的实时性必须达到100%,是绝对不允许出现意外的;
软实时,意味着,不处理也不会有灾难性的后果,如信息查询系统;再如,用户在操作DVD播放机时,只要98%的情况都能正常播放,用户可能就满意了。

分时系统中,时间片是不是越短越好?

分时系统的主要特点是将cpu的时间划分成时间片,轮流接收和处理各个用户从终端输入的命令。如果时间片设得太短会导致过多的进程切换,降低了CPU效率;而设得太长又可能引起对短的交互请求的响应变差。
时间片越短,意味着响应时间越短,对于交互性来说,是越短越好,但是,时间片越小则当一个进程运行时间长,将进行频繁的切换。系统开销大。时间片过大,则限制了系统的吞吐量。
因为切换需要系统开销,时间片越短,切换的次数越多,导致系统开销越大,会导致系统整体性能的下降,到底划分多长比较好?这里有个经验值,最好是,时间片的长短,恰好能运行完大部分的命令最佳,这样,切换的少,响应时间也还可以,没有最好,只有最适合。

简单了解作业、进程、程序

作业:可以理解成要完成的任务,它包括,程序、数据、还有作业说明书,描述作业怎么执行的文件;

进程,可以理解成运行中的程序,是程序到计算机中,计算机处理的一种叫法,是相对于计算机来说的,没有一个标准的定义,所有给出的定义,都体现出运行这个动态的特征;

程序是一个静态的概念,编写的指令序列的集合。程序运行以后,就产生了进程,一般一个程序产生一个进程,也有一个程序产生多个进程的情况(Linux常见)

操作系统的特征(其实不管是Windows,Linus,Unix系统都有的):

并发性,共享性(互斥共享,同时访问),虚拟性,异步性。

操作系统五大功能

五大功能:
设备管理,进程(处理机)管理,文件管理,存储器管理以及用户接口;
因为,我们学校(个人简介有,这里还是不打出来的好哈哈)操作系统这门课,就是围绕着功能进行深入学习的。理解了这个问题,会大概清楚后面会学哪些内容。
主要对异步性进行理解:也称为不确定性,因为进程的并发执行,在调度过程中,进程的执行顺序、完成事件都不确定,进程“走走停停”,按不可预知的速度向前推进,称为异步性。举个例子:我们大学学习,有很多课程,比如,英语,数学,c语言,数据结构等,这些课程里,英语和数学在逻辑上基本上不相干,换一句话说,先学英语,或者先学数学都行,不影响整个大学的学习,在我们这里,可以说,学英语,学数学这两件事情,是异步执行的,逻辑上不相干,谁先运行都行。
默认的情况下,进入内存的多道程序是异步执行的,也就是说,内存中的多个程序,先运行哪个,哪个先运行完,都无所谓,对结果没影响,讲到异步,必然要提到操作系统另外一个重要概念–同步,同步和异步相对,比如刚才的例子,我们要学习数据结构(C语言编写版)这门课程,必需先学习c语言,否则,这个事情就进行不下去(至于为什么,大家都知道)。
所以,用自己的话说,同步是什么?就是在逻辑上有先后顺序的,反之没关系的叫异步。

PS:以上大部分是自己的理解,也是本人当做自己的一个学习总结罢了,由于本人知识、经验及能力各方面有限,不免会有些勘误,还各位大神斧正。
有对于有疑点的同学可以多查询资料,以免被误导。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值