暑假没啥事做,准备好好的把自己的计算机基础给打牢,第一步呢就是重新学一下操作系统,并且在学习的过程中把自己的一些总结和书上学到的只是进行简单的概述。我用的书是考研辅导书(王道),期间也看了他们在中国大学MOOC上的教学视频,对他们表示感谢。
知识框架:
1.1 操作系统的基础概念
首先是操作系统的定义:是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合,是计算机系统中最基本的系统软件。如下图计算机系统层次结构图所示,操作系统管理各种计算机硬件,为应用程序提供基础,并充当计算机硬件与用户之间的中介。
操作系统是一种系统软件,与其他的系统软件和应用程序有很大的不同,有着自己的特殊性即基本特征。操作系统的基本特征包括并发、共享、虚拟和异步。其中并发和共享是最基本的特征,二者互为存在条件。
(1)并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。常与并行混淆,并行指两个或多个事件在同一时刻发生。操作系统的并发性指计算机系统同时存在着多个运行的程序,但一个单核处理器同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行,从宏观上看起来就像是同时执行。操作系统的并行由多核处理器(如intel四核CPU)支持使其同一时刻可以执行多个程序。
(2)共享性即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
所谓“同时”往往是宏观上的,而微观上,这些进程可能是交替地对该资源进行访问的(分时共享)
并发性与共享性的关系:
1,如果失去并发性,则系统中只有一个程序在运行,则共享性失去存在的意义。
2,如果失去共享性,则多个程序无法访问硬盘资源,并发也就失去意义。
(3)虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感应到的。
例如,我们知道一个程序需要放入内存中病给它分配CPU才能执行,现在电脑中同时运行GTA5,QQ,微信...GTA5需要4G运行内存,QQ需要256M,微信需要256M...,但电脑的内存仅有4G,那么电脑是如何实现这些软件同时运行的呢? 答:这是虚拟存储器技术,实际只有4G的内存,但在用户看来似乎远远大于4G。
例如,每个程序需要分配CPU才可以运行,那为什么单核CPU可以运行多个程序?
答:这是虚拟处理器技术,实际只有一个单核处理器,但在用户看来似乎有多个CPU供自己使用。
(4)异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。显然,如果失去了并发性,则系统只能串行的处理各个进程,每个进程的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性。
为了给多道程序提供良好的运行环境,操作系统应具有以下几方面的功能:处理机管理、存储器管理、设备管理和文件管理。为了方便用户使用,还必须向用户提供接口,同时操作系统可用来扩充机器,以提供更方便的服务、更高的资源利用率。
命令接口:允许用户直接使用
程序接口:允许用户通过程序间接使用
GUI:现代操作系统中最流行的图形用户接口,通过图形化的操作来完成操作,比如右击点击删除。
操作系统的运行环境
指令是处理器(CPU)能识别、执行的最基本命令
处理器位于用户态(目态)时,CPU只能执行非特权指令
处理器位于核心态(管态)时,CPU可执行特权指令和非特权指令。
操作系统内核是计算机配置的底层软件,是操作系统最基本,最核心的部分。
实现操作系统内核功能的那些程序就是内核程序。
操作系统的体系结构是一个开放性的问题。现在解决操作系统在核心态应该提供什么服务,怎样提供服务的问题上,形成了两种主要的体系结构:大内核和微内核。
大内核系统将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务。微内核主要解决操作系统的内核代码难以维护的问题,将内核中最基本的功能保留在内核,而将那些不需要在核心态执行的功能一道用户态执行,从而降低内核的设计复杂性。
类比如下:内核可以类比为公司的管理层负责重要的工作,只要管理层才可以执行特权指令,普通员工只能执行非特权指令。用户态、核心态之间的切换相当于普通员工和管理层之间的工作交接。大内核:企业初创时体量不大,管理层会负责大部分事情。微内核:随着企业体量越来越大,管理层只负责最核心的一些工作。
中断的概念和左右
1,当中断发生CPU立即进入核心态
2,当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
2,对于不同的中断信号,会进行不同的处理。
发生中断就意味着需要操作系统介入,并开展管理工作。由于操作系统的管理工作(进程切换、分配I/o设备等)需要使用特权指令,因此CPU要从用户态转换为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断才能实现多道程序并发执行。中断也是用户态切换到核心态的唯一途径,核心态切换到用户态是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”
内中断的信号来源:CPU内部与当前执行的指令有关。自愿中断如系统调用时使用的访管指令(陷入指令、trap指令),硬件故障如缺页,软件中断如整数除0.
外中断的信号来源:CPU外部与当前执行的指令无关。外设中断如I/O操作完成发出的中断信号。人工干预如用户强行终止一个进程。
系统调用是用户在程序中调用操作系统所提供的一些子功能,系统中的各种共享资源都由操作系统同一管理,因此在用户程序中,凡是与资源有关的操作都不许通过系统调用的方式向操作系统提出服务请求,并由操作系统代为完成。