Operating System 1.2 什么是操作系统
——什么是操作系统
定义
操作系统因为其本身软件的复杂性,边界的不固定性导致其没有一个完整的,精确的且公认的定义。但我们可以从操作系统的功能和特点来了解什么是操作系统。
功能
从功能来区分,操作系统分为对上和对下两个层面
对上层面(可以看作操作系统的三个功能)
服务
例如操作系统对用户和应用提供服务(I/O服务、声卡、网卡的访问等等...)。操作系统也使得我们使用计算机更加方便。
控制
操作系统控制了计算机中软件与硬件的运行方式,它也限制了这些不同的应用程序所占用的资源。
管理
操作系统从对内部对象管理的层面上说,是一个资源分配器。为了使得不同的程序能够尽可能的同时运行,操作系统需要在不同时刻对 不同程序适当的分配资源达到程序协调运行的目的。
以上几点可由下面的几个特性概括:
用户角度上,操作系统是一个控制软件
管理应用程序
为应用程序提供服务
杀死应用程序
资源管理
管理外设,分配资源
站在用户的角度看计算机 ( 图形图像界面 )
站在操作系统的角度看计算机(操作系统所做的抽象(虚拟化),CPU抽象(虚拟化成进程)...)
操作系统架层次结构:
操作系统起到承上(上承应用程序)启下(下接硬件)的作用,直接面向各种硬件。
操作系统在软件中的位置:
软件分为应用软件和系统软件,造作系统隶属于系统 软件,它位于应用软件之下,为应用软件提供服务支撑。
操作系统层面的两种软件接口:
面向应用程序的接口(Shell):
一种是windows下的GUI,它表示操作系统对外暴露的一层接口,通过这个接口,应用程序可以得到更好的服务,并将应用程序本身更好的展现给用户。另一种是以命令行(字符)方式出现的shell,多见于Linux系统。
面向计算机内部的接口(Kernel):
操作系统主要管理硬件资源(CPU、内存、磁盘...)
CPU管理 涉及到CPU调度,线程管理;
内存管理 涉及到物理内存和虚拟内存的挂你(主要是给上层应用提供一块相对独立的,容量尽可能大的内存空间);
文件系统管理 因为从底层看,地址管理是使用磁盘块的方式进行管理,这样很繁琐,不方便用户或应用程序来更好的存取数据。因此操作系统抽象出文件系统,通过文件系统,以文件的方式给应用程序提供一个存储空间。
中断处理和I/O设备驱动
OS Kernel 的特征
并发
在操作系统中放置多个可以在一段时间内运行的程序,让操作系统自行调度,选择拿一个程序需要占用CPU运行。
并发与并行的区别:并发是一段时间内同时执行多个程序,并行是在一个时间点上可以同时执行多个程序,需要多CPU的支持。
概括:
计算机系统中同时存在多个运行的程序需要OS管理和调度。
共享
操作系统是一个资源管理器,那么它就存在如何将这些资源有效的共享给对资源有所需求的应用程序的问题。之前提到过,操作系统额可以同时访问一个资源,但其原理依赖于互斥共享和分时法。实际上在一个时间点。只能有一个程序访问一个资源,比如说一个内存,针对某个内存单元,则它只能被一个程序访问。但是,如果我们讲一个内存单元拆分成两半,这两块相互隔离,那么他就可以被两个不同的程序同时访问。到底是采用互斥共享还是同时共享取决于资源本身的特征。
概括:
” 同时 ”访问, 互斥共享。
异步
程序的执行不是一贯到底,而是 走走停停,向前推进的速度不可预知。但只要运行环境相同,OS需要保证程序运行的结果也相同。
小结:本次笔记逻辑有点混乱,整体框架基本来自视频,视频中针对功能方面之讲解了对上,为讲解对下的内容,如果后期视频提及相关内容,我会继续更新,如果没有的话。。。。。。我就等到自己完全熟悉这么课程的时候再自己补充吧╮(╯▽╰)╭