操作系统学习笔记之——计算机系统概述

计算机系统概述

1、操作系统的基本概念

1.1、操作系统的概念

操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。最基本的系统软件

1.2、操作系统的特征

  • 并发
  • 共享
  • 虚拟
  • 异步

1.3、操作系统的目标与功能

1.3.1、操作系统作为计算机系统资源的管理者

  • 处理机管理

    进程控制、进程同步、进程通信、死锁处理、处理机调度

  • 存储器管理

    内存分配、地址映射、内存保护与共享、内存扩充

  • 文件管理

    文件存储空间的管理、目录管理及文件读写管理与保护

  • 设备管理

    缓冲管理、设备分配、设备处理和虚拟设备

1.3.2、操作系统作为用户与计算机硬件之间的接口

操作系统提供的接口主要分为两类:一类是命令接口,用户利用这些操作命令来组织和控制作业的执行;另一类是程序接口,编程人员可以使用它们来请求操作系统的服务

  • 命令接口

    联机命令接口与脱机命令接口

  • 程序接口

    程序接口是由一组系统调用命令组成的。用户在程序中使用这些系统调用命令来请求操作系统为其服务。

1.3.3、操作系统作为扩充机器

pass


2、操作系统的运行环境

2.1、操作系统的运行机制

计算机系统中,通常 CPU 执行两种不同性质的程序:一种是操作系统的内核程序;另一种是用户自编的程序,即应用程序。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理程序”(即内核程序)要执行一些特权指令,而“被管理者”(即应用程序)出于安全考虑,不能执行这些特权指令。所谓特权指令,是指计算机中不允许用户直接使用的指令。如:I/O 指令、置中断指令、存取用于内存保护的寄存器等。在具体实现上,将 CPU 的状态划分为用户态和核心态CPU 处于核心态可以执行特权指令,CPU 处于用户态,只能执行非特权指令

现在操作系统基本都是层次结构的,各项功能被分别设置在不同的层次上一些与硬件较紧密的模块,比如:时钟管理、中断处理、设备驱动等处于最底层。其次是运行频率较高的程序,比如:进程管理、存储器管理和设备管理等这两部分构成了操作系统的内核,这两部分的指令工作在核心态。内核是计算机上配置的底层模块,是计算机功能的延伸。大多数操作系统内核包括四个方面

  1. 时钟管理

    计时、可以实现进程切换等

  2. 中断机制

    提高多道程序运行环境中的 CPU 的利用率,现在操作系统是靠中断驱动的软件。中断机制中,只有一小部分属于内核,它们负责保护和恢复中断现场,转移控制权到相关处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。

  3. 原语

    按层次结构设计的操作系统,底层必然是一些可被调用的公共小程序,它们各自完成一个规定的操作。它们的特点如下:

    • 处于操作系统的最顶层,是最接近硬件的部分;
    • 这些程序的运行具有原子性,其操作只能一气呵成;
    • 这些程序的运行时间都很短,而且调用频繁。

    定义原语的直接方法就是关中断

  4. 系统控制的数据结构及处理

    系统中用来登记的状态信息的数据结构有很多,如作业控制块、进程控制块(PID)等。为了实现有效的管理,系统需要一些基本的操作,常见的有:

    • 进程管理。进程状态的切换、进程调度和分派、创建与撤销进程控制块;
    • 存储器管理。存储器的空间分配和回收、内存信息保护程序、代码对换程序等;
    • 设备管理。缓冲区管理、设备分配等。

    综上,核心态指令实际上包括一些系统调用指令和一些针对时钟、中断和原语的操作指令

2.2、中断和异常的概念

核心态和用户态之间如何切换呢?系统不允许用户程序实现核心态的功能,而他们又必须使用这些功能。因此,需要在核心态建立一些 “门” ,以便实现从用户态进入核心态。在操作系统中,CPU 运行上层程序时唯一能进入这些 “门” 的途径就是通过中断会异常

  • 中断

    也称为外中断,是指来自 CPU 执行指令之外的事件的发生,如:设备发生的 I/O 结束中断、表示设备输入/输出处理已经完成,希望处理机能够向设备发出下一个输入/输出请求,同时让完成输入/输出后的程序继续运行。时钟中断,表示一个时间片已到,让处理机处理计时、启动定时运行的任务等。这一系列中断通常是与当前运行的程序无关。

  • 异常

    也称为内中断、陷入。是指来自 CPU 执行指令内部的事件,如:程序的非法操作码、地址越界、算术溢出、虚拟存储系统的缺页及专门的陷入指令等对异常的处理一般要依赖当前程序的运行现场,而异常不能被屏蔽,一旦出现立即处理

2.3、系统调用

所谓系统调用,是指用户在程序中调用操作系统所提供的一些子功能,系统调用可被视为特殊的公共子程序系统中的各种共享资源都由操作系统统一管理,因此在用户程序中,凡是与资源有关的操作,如:存储分配、进行 I/O 传输以及文件管理等,都必须通过系统调用向操作系统提出请求,并由操作系统完成。这些系统调用大致可分为以下几类:

  • 设备管理。完成设备的请求与释放,以及设备启动等;
  • 文件管理。完成文件的读、写、创建及删除等;
  • 进程管理。完成进程的创建、撤销、阻塞及唤醒等;
  • 进程通信。完成进程之间的消息传递或信号传递等功能;
  • 内存管理。完成内存的分配、回收以及获取作用占用内存区大小及始址等功能。

系统调用相关功能涉及资源管理、进程管理等操作,对整个系统的影响非常大,因此必定需要使用某些特权指令来完成。所以系统调用的处理需要由系统内核程序负责完成,要运行在核心态用户程序可以执行陷入指令(又称为访管指令)来发起系统调用,请求操作系统提供服务。可以这么理解:用户程序执行 “陷入指令”,相当于把 CPU 的使用权主动交给操作系统内核程序(CPU 状态会主动从用户态进入核心态),之后操作系统内核程序再对系统调用请求作出相应处理。请注意,访管指令是在用户态下使用的,因此它并不是特权指令

猜你喜欢

转载自blog.csdn.net/qq_36879493/article/details/107856883
今日推荐