系统调用 用户态和内核态

系统调用

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

平常我门的进程几乎都是用户态,读取用户数据,当涉及到系统操作,计算机资源的时候就要用到系统调用了

系统调用的功能与其作用一样——涉及计算机资源的操作

  • 设备管理:完成设备的请求/释放以及设备的启动
  • 文件管理:完成文件的读写、删除、创建等功能
  • 进程控制:完成进程的创建、撤销、阻塞以及唤醒等功能
  • 内存管理:完成内存的分配、回收以及获取作业占用内存区大小和地址等功能

进程在系统上的运行分为2个级别

  • 用户态(user mode):用户态运行的进程可以直接读取用户程序的数据
  • 内核态(kernel mode):系统态运行的程序可以访问计算机的任何资源,不受限制 平常我们运行的程序都是用户态的,如果想要将进程运行在系统态则需要利用系统调用