操作系统基础

操作系统基础

操作系统主要有哪些功能?

从资源管理的角度来看,操作系统有 6 大功能:

  1. 进程和线程的管理:进程的创建、撤销、阻塞、唤醒,进程间的通信等。
  2. 存储管理:内存的分配和管理、外存(磁盘等)的分配和管理等。
  3. 文件管理:文件的读、写、创建及删除等。
  4. 设备管理:完成设备(输入输出设备和外部存储设备等)的请求或释放,以及设备启动等功能。
  5. 网络管理:操作系统负责管理计算机网络的使用。网络是计算机系统中连接不同计算机的方式,操作系统需要管理计算机网络的配置、连接、通信和安全等,以提供高效可靠的网络服务。
  6. 安全管理:用户的身份认证、访问控制、文件加密等,以防止非法用户对系统资源的访问和操作。

什么是用户态和内核态?

根据进程访问资源的特点,我们可以把进程在系统上的运行分为两个级别:

  • 用户态(User Mode) : 用户态运行的进程可以直接读取用户程序的数据,拥有较低的权限。当应用程序需要执行某些需要特殊权限的操作,例如读写磁盘、网络通信等,就需要向操作系统发起系统调用请求,进入内核态
  • **内核态(Kernel Mode)**:内核态运行的进程几乎可以访问计算机的任何资源包括系统的内存空间、设备、驱动程序等,不受限制,拥有非常高的权限。当操作系统接收到进程的系统调用请求时,就会从用户态切换到内核态,执行相应的系统调用,并将结果返回给进程,最后再从内核态切换回用户态

内核态相比用户态拥有更高的特权级别,因此能够执行更底层、更敏感的操作。不过,由于进入内核态需要付出较高的开销(需要进行一系列的上下文切换和权限检查),应该尽量减少进入内核态的次数,以提高系统的性能和稳定性。

image-20240310175730896

什么是系统调用?

我们运行的程序基本都是运行在用户态,如果我们调用操作系统提供的内核态级别的子功能咋办呢?那就需要系统调用了

也就是说在我们运行的用户程序中,凡是与系统态级别的资源有关的操作(如文件管理、进程控制、内存管理等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。

这些系统调用按功能大致可分为如下几类:

  • 设备管理:完成设备(输入输出设备和外部存储设备等)的请求或释放,以及设备启动等功能。
  • 文件管理:完成文件的读、写、创建及删除等功能。
  • 进程管理:进程的创建、撤销、阻塞、唤醒,进程间的通信等功能。
  • 内存管理:完成内存的分配、回收以及获取作业占用内存区大小及地址等功能。

系统调用和普通库函数调用非常相似,只是系统调用由操作系统内核提供,运行于内核态,而普通的库函数调用由函数库或用户自己提供,运行于用户态。

总结:系统调用是应用程序与操作系统之间进行交互的一种方式,通过系统调用,应用程序可以访问操作系统底层资源例如文件、设备、网络等。

系统调用的过程可以简单分为以下几个步骤:

  1. 用户态的程序发起系统调用,因为系统调用中涉及一些特权指令(只能由操作系统内核态执行的指令),用户态程序权限不足,因此会中断执行,也就是 Trap(Trap 是一种中断)。
  2. 发生中断后,当前 CPU 执行的程序会中断,跳转到中断处理程序。内核程序开始执行,也就是开始处理系统调用。
  3. 内核处理完成后,主动触发 Trap,这样会再次发生中断,切换回用户态工作。

image-20240310221711568

中断和异常的区别

1.中断是与当前运行程序无关的中断信号触发的,与CPU是异步的;异常是CPU控制单元产生的,源于当前程序的执行指令,与CPU是同步的。大部分异常发生在用户态,内核态唯一发生的异常是“缺页异常”。

2.中断要求快速处理,中断处理程序过程中不能被阻塞或发生进程切换(但可以被更高优先级中断源中断),异常处理程序处于被打断的当前程序上下文中,可以被阻塞或发生进程切换。

3.中断允许嵌套,异常大多数为一重。

外中断(中断或异步中断):

  • 处理器之外的中断信号。如时钟中断,I/O中断等。

分为可屏蔽中断与不可屏蔽中断。

内中断(异常或同步中断):处理器内部的中断信号

  • 访管中断:系统调用。
  • 硬件故障中断:电源失效,奇偶校验错误,总线超时等。
  • 程序性异常:非法操作,地址越界,页面故障,除0,浮点数溢出等。

内中断无法屏蔽,必须立即响应处理。

按异常的报告方式和返回方式不同分为:故障(缺页,除0),自陷(系统调用),终止(电源失效)


操作系统基础
http://example.com/2023/02/23/计算机基础/操作系统/操作系统基础/
作者
PALE13
发布于
2023年2月23日
许可协议