操作系统概述

操作系统概述

基本特征:

  1. 并发

    并发是指宏观上在一段时间内同时运行多个程序,而并行则指同一时刻能运行多个指令

    并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统

    操作系统通过引入进程和线程,使得程序能够并发运行

  2. 共享

    共享是指系统中的资源可以被多个并发进程共同使用

    有两种共享方式:互斥共享和同时共享

    互斥共享的资源被称为临界资源,如打印机,在同一时刻只允许一个进程访问,需要同步机制来实现互斥访问

  3. 虚拟

    虚拟技术把一个物理实体转换为多个逻辑实体

    主要有两种虚拟技术:时分复用技术和空分复用技术

    多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占用处理器,每次只执行一小个时间片并快速切换

    虚拟内存使用了空分复用技术,它讲物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中

  4. 异步

    异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进

基本功能

  1. 进程管理

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

  2. 内存管理

    内存分配、地址映射、内存保护与共享、虚拟内存

  3. 文件管理

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

  4. 设备管理

    完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率

    主要包括 缓冲管理、设备分配、设备处理、虚拟设备

用户态和内核态

  1. 定义

    用户空间就是用户进程所在的内存区域,相对的,系统空间就是操作系统占据的内存区域。用户进程和系统进程的所有数据都在内存中。处于用户态的程序只能访问用户空间,而处于内核态的程序可以访问用户空间和内核空间。

  2. 用户态切换到内核态的方法

  • 系统调用:程序的执行一般是在用户态下执行的,但当程序需要使用操作系统提供的服务时,比如说打开某一设备、创建文件、读写文件(这些均属于系统调用)等,就需要向操作系统发出调用服务的请求,这就是系统调用。
  • 异常:当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。
  • 外围设备的中断:当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。
  1. 区别

    权限不一样

    • 用户态的进程能存取它们自己的指令和数据,但不能存取内核指令和数据(或其他进程的指令和数据
    • 核心态下的进程能够存取内核和用户地址。某些机器指令是特权指令,在用户态下执行特权指令会引起错误。在系统中内核并不是作为一个与用户进程平行的估计的进程的集合。