操作系统的基本概念

  1. 操作系统的基本元素
    1. 用户模式和内核模式,现在的CPU通常运
      行在内核模式和用户模式,内核模式在Intel x86处理器中称为核心层Ring0,用户模式为Ring3,如果CPU处于内核模式,那么硬件将允许执行一些仅能在内核模式下许可的特殊指令和操作,一般情况下,操作系统应当在内核模式下,而应用程序一般在用户模式下。要使内核所提供的保护真正有效,普通指令就不能自由修改CPU模式,标准的模型中将CPU模式转换为内核模式唯一的方法是触发一个特殊的硬件自陷,有如下的三种硬件自陷:1. 中断,通常由外部硬件引发,如I/O或时钟 2. 异常,如除数为0,或访问非法异常 3. 显式地执行自陷指令
    2. 内存管理,要避免用户进程相互影响最好的方法就是避免他们从对方的存储区域读写数据,同时应当避免读写操作系统的内存区域,其中也包括操作系统的代码。系统达到该目的的方法是在CPU和其它部分之间的地址总线上,嵌入内存管理单元(MMU)CPU发射合适的地址,MMU单元负责把逻辑的地址转换为物理地址,操作系统使用特殊的指令集来建立和控制这种转换关系,操作系统使用特殊指令来建立和控制这种转换关系,对用户代码而言,MMU的转换机制是能够使我们标记某些内存区域仅是可读的。如果用户级的CPU视图发出一条写入该地址的指令,那么MMU将拒绝转换地址,同时引发异常,从而进入内核级,与此类似,MMU可以避免用户代码读取不该访问的内存,内核创建仅由它自己才能看到的内存区域,并使用该内存区域来存储用户进程的维护数据,I/O缓冲等。完成这一系列过程依赖于硬件体系结构和操作系统的设计选择。
    3. 用户接口,用户接口主要分为作业级接口和程序级接口。
      1. 作业级接口就是操作系统为用户对作业运行全过程提供的功能,解决了用户如何将请求告诉计算机,接到请求后计算机如何进行服务等问题,从用户的角度看,作业是用户要求计算机所做工作的集合,从程序的角度看,作业是一些相对独立的顺序执行的步骤所组成,这些步骤被称为作业步。从系统的角度看,作业是一个完整的用户程序,数据和作业说明书组成,程序是问题求解的算法描述,数据是程序加工的对象,作业说明书告诉操作系统本作业的程序和数据按照什么样的数据要求使之执行。
      2. 程序级接口是操作系统专门为用户程序所设计的,是用户程序取得操作系统服务的唯一途径,程序接口通常由系统调用组成,这些系统调用命令可以分为3类:一般设备输入输出的系统调用,磁盘的输入输出,磁盘文件管理的系统调用,其他系统调用
    4. 系统调用,操作系统的内核中设置了一组用户特定系统功能的子程序或过程,被提供给应用程序调用,在程序中需要系统完成特定功能,可以通过调用特定的子程序来完成,这就是系统调用。系统调用的过程:用户代码在约定的地方存储一个值(比如CPU的寄存器),这个值代表了它请求的服务,如果服务需要参数,用户代码采用相同的方法在特定的地方存储一个值,然后用户代码发送一条自陷指令,与其他类型的中断相同,系统做出响应,保存用户进程状态,记录程序计数器,其他硬件寄存器和其他进程数据,硬件切换到内核模式,执行系统调用处理程序,该过程一般需要查找服务表以便找到所请求服务的处理子过程入口,上述的过程为用户上下文切换,一旦请求的服务完成,就可以恢复用户进程状态,控制权重新交给进程
  2. 操作系统的功能:资源管理,用户接口,进程管理和内存管理。
    1. 进程管理,进程和线程的区别我就不说了,现代操作系统里面都学了。简单提一点就是,进程是用于组织资源的最小单位,而线程是安排CPU执行的最小的单位。进程的管理是通过中断来实现的,用于进程管理的定时器产生中断,系统暂停当前代码的执行,进入进程管理程序。进程管理程序分析当前各个进程的优先级和等待顺序,选择合适的进程,将CPU的时间片交给他。进程管理的功能在于进程控制,进程同步,进程通信,进程调度
    2. 文件系统管理。文件是存储在外存上具有标志名的一组相关字符流或记录的集合,文件系统是操作系统负责存取和管理文件的一组软件和所需数据结构,是用户与外存之间的接口。文件系统是一种数据链表,用来描述磁盘上的信息结构,并支持磁盘文件的取出与写回。一旦这种表被破坏,即使磁盘中的数据不被破坏,也无法读取出来

      首发于我的个人网站: 点击打开链接

你可能感兴趣的:(操作系统的基本概念)