操作系统每日笔记(一):导论(一)
概述:操作系统是作为计算机硬件和计算机用户之间的中介的程序。操作系统的目的是为用户提供方便且有效地执行程序的环境。它是管理计算机硬件的软件。
1.1 操作系统能做什么
计算机系统大致分为4个组成部分:
a:计算机硬件,比如CPU,内存,IO等。
b:操作系统
c:系统程序与应用程序,如字处理程序,电子制表软件等。
d:用户
操作系统类似政府,本身并没有功能,只是提供了一个方便其他程序做有用工作的环境。
逻辑图:
1.1.1 用户视角
用户观点因情况不同而异。
如:
a==>单用户需要游戏或者工作,操作系统重点就在为了用户使用方便上,性能次要。
b==>用户坐在与大型机或小型机相连的终端前,其他用户通过其他的终端访问同一台机器。操作系统重点就在确保所有的CPU时间、内存、IO充分使用,并且用户没有超越权限。
c==>用户之间需要共享资源。因此设计目的是个人使用性能和资源利用率的折中。
d==>手持计算机用户,比如手机,apple watch等,目的是方便使用,而且电池容量发挥最大性能也很重要。
1.1.2 系统视角
操作系统是与硬件最为密切的程序。操作系统管理资源。计算机有许多资源,可以将计算机看作资源分配器。
1.1.3 定义操作系统
操作系统是一直运行在计算机上的程序(通常称为内核),其他程序则为系统程序和应用程序。
1.2 计算机系统组织
本章主要讨论计算机的系统结构。
1.2.1 计算机系统操作
现代计算机由一个或者多个CPU和若干设备控制器通过共同的总线相连而成。该总线提供了对共享内存的访问。每个设备控制器负责一种特定类型的设备。CPU与设备控制器可以并发工作,并竞争内存周期,为了确保对共享内存的有序访问,需要内存控制器来协调对内存的访问。
事件的发生通常通过硬件或软件中断来表示。硬件随时通过总线向CPU发出信号出发中断,软件通过执行操作如系统调用也能触发中断。
中断必须将控制权转移到合适到中断处理程序。处理转移的简单方法是调用一个通用子程序检查中断信息,接着调用相应的中断处理程序。
1.2.2 存储结构
计算机程序必须在内存(RAM)中运行。内存是处理器唯一可以访问的大容量存储区域。
内存不够,需要辅存。
最常见的是磁盘。执行时才装入内存。经典的存储结构是寄存器、内存和磁盘。出此以外,还有高速缓存,CD-ROM,字处理器。主要差别是速度、价格、大小和易失性。
1.2.3 I/O结构
设备控制器维护一定量的本地缓冲存储和一组特定用途的寄存器。设备控制器负责在其所控制的外部设备与本地缓冲存储之间进行数据传输。通常,每个设备控制器有一个设备驱动程序。
1.3 计算机系统体系结构
可以大致通过其采用的通用处理器数量来分类。
1.3.1单处理器系统
所谓的单处理器,是指有一个通用的处理器。而那些专用处理器,比如PC在键盘上有一个微处理器将击键处理成代码,并发送给CPU并不能算通用处理器,它只是专用处理器,因此整个系统还是单处理器系统。
1.3.2多处理器系统
也称并行系统或紧耦合系统。三个优点:
b:规模经济。能节省资金。因为共享外存,大容量存储和电源。多个程序操作同样数据,比用许多有本地磁盘的计算机和多个数据复制更节省。
c:增加可靠性。单个CPU停止,不会使系统宕机,只是变慢。
目前多处理器系统主要有两种类型。非对称处理器和对称处理器。非对称处理器是一个主CPU带领多个从CPU,也叫主-从。每一个处理器向主处理器要任务,每个处理器任务不一样。
而对称处理器每个处理器要完成操作系统所有任务。
1.3.3 集群系统
多CPU系统多另一种类型就是集群。与多处理器不同,它是由两个或多个独立的系统耦合起来。集群计算机共享内存,并通过局域网连接。
集群可以对称也可以不对称。非对称中,一台机器处于热备份中,只监视,出问题就监管。
而非对称则两个或多个主机都运行应用程序。
1.4 操作系统结构
操作系统最重要的一点是要有多道程序处理能力。使CPU总有一个作业可执行。
分时系统是多道程序设计的延伸。多道程序系统不能与计算机系统直接交互,也就是切换的时候不能交互,但是分时可以,因为切换频率很高。
装入到内存中并执行的程序通常称为进程。
1.5 操作系统操作
操作系统由中断驱动。陷阱或(异常)是一种软件中断。对于每一种错误,操作系统定义了不通的代码决定要采取的动作。中断服务程序就是用来处理中断的。
由于操作系统和用户共享计算机系统硬件和软件,因此必须保证程序的一个错误不能影响其他错误。
1.5.1 双重模式操作
操作系统所采取的方法是提供硬件支持以允许区分各种执行模式。
1.5.2 定时器
为了确保操作系统对CPU控制,也必须防止用户程序陷入死循环或者不调用系统服务,而且不把控制权返回给操作系统,为了达到这一目的,可以使用定时器。
到达给定时间后,操作系统中断计算机。
可变定时器,通过时钟和计数器来实现。每经过一个时钟周期,计数器递减。当计数器递减到0时,系统终端。
比如:能运行7分钟的程序,可以将计数器设置为420S。定时器每秒产生一次中断。当为0的时候,操作系统中止程序执行。
1.6 进程管理
处于执行中的程序被称为进程。现在,可以将进程视为作业或分时程序。进程需要资源(CPU时间,内存,文件,I/O设备)以完成其任务。可以在进程创建或执行进程时分配给进程。
程序本身不是进程,程序是被动的实体,是死的。而进程是活动的实体。单线程进程具有一个程序计数器来明确下一个执行的指令。这样的进程必须是连续的。
同一时间,只有一个指令代表进程被执行,就算有两个甚至更多进程可能与同一程序相关联,然而这两个进程都有其各自的执行顺序。
多线程进程具有多个程序计数器。
进程是系统工作的单元。而系统由多个进程组成。而这些进程分为操作系统进程和用户进程。而所有这些进程可以并发执行。
操作系统负责下述与进程管理有关的活动:
a:创建和删除用户进程和系统进程;
b:挂起和重启进程;
c:提供进程同步机;
d:提供进程通信机制;
e:提供死锁处理机制;
1.7 内存管理
内存是现代计算机系统操作的中心。内存是一个大的字节或字的数组。每个字节或字都有其自己的地址。
内存是可以被CPU和I/O共同快速访问的数据仓库。它通常是CPU所能直接寻址和访问的唯一大容量存储器。
如果一个程序要执行,那么它必须先变换成绝对地址并装入内存。
为提供效率,通用计算机必须在内存中保留多个程序,从而有了内存管理的概念。
操作系统负责下列有关内存管理的活动:
a:记录内存的哪部分正在被使用以及被谁使用;
b:当有内存空间时,决定哪些进程可以装入内存。
c:根据需要分配和释放内存空间。
1.8 存储管理
操作系统对存储设备的物理属性进行了抽象,定义了逻辑存储单元,即文件。操作系统将文件映射到物理介质上,并通过这些存储介质访问这些文件。
1.8.1 文件系统管理
计算机可以在多种类型的物理介质上存储。如磁带、磁盘、光盘等。这些物理介质都需要通过驱动来进行控制。
文件是由创建者定义的一组相关信息的集合。通常,文件由源程序和目标程序组成。而它的类型可以多种多样,比如数值的、字符的、字符数值的、二进制的,可以说是对整个世界的抽象。
操作系统通过管理大容量存储器,如外存及驱动,来实现文件这一概念。而且,文件通常有目录,同时,对文件还做了权限控制。
操作系统负责下列有关文件管理的活动:
a:创建和删除文件;
b:创建和删除目录来组织文件;
c:提供操作文件和目录的原语。原语是 某个操作或者指令集合 的连续性以及不可中断性。集合中的指令要么全部执行,要么一个也不执行,它们在逻辑上是一个unit。这个概念和数据库里面的transaction完全一样。
d:将文件映射到二级存储;
e:在稳定存储介质上备份文件;
1.8.2 大容量存储器管理
由于内存断电会丢失数据,而且容量太小,无法容纳所有数据和程序。因此计算机系统提供了二级存储器,用来备份内存。
其实二级存储器就是外存。由于重要性,操作系统提供了对硬盘管理的活动:
a:空闲空间管理;
b:存储空间分配;
c:硬盘调度;
同时,为了性价比的考虑,有时候使用三级存储设备,如磁带和光盘等。
1.8.3 高速缓存
可以说是内存的扩展,概念有点类似于用户信息存放在nosql数据库中,如果有就从nosql数据库查询,如果没有就从关系型数据库查询,并存储到nosql数据库中。
内存可以看作是外存的高速缓存,因为外存数据必须先复制到内存才能使用。
一个数据可能同时存储于不同级别,例如:
而当多任务环境或者多处理器环境或者分布式环境中,为了保证A的值和其余高速缓存中的A值一致,很复杂,这就是要保证高速缓存一致性。
1.8.4 I/O系统
操作系统的目的之一是对用户隐藏具体硬件设备的特性。
1.9 保护和安全
如果计算机系统允许多用户,并且能够允许多个进程并发执行,那么就必须要管理对数据的访问。这就是权限控制。
保护是一种控制进程或用户对计算机系统资源的访问的机制。
控制进程就是比如用内存寻址硬件保证一个进程只能在它所在的地址空间里执行,定时器保证CPU能及时释放等等。
绝大多数操作系统维护一个用户和相关用户标志,比如userID。有些环境,还有用户组的概念。一个用户可以属于一个或多个组。
不管是用户还是用户组,都与其相关的进程和线程关联。