本文档为面试精华版,如果是初学者,建议从专栏学习:操作系统专栏
我通过以下四点向您介绍⼀下什么是操作系统吧:
操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基⽯;操作系统本质上是运⾏在计算机上的软件程序 ;操作系统为⽤户提供⼀个与系统交互的操作界⾯ ;操作系统分内核与外壳(我们可以把外壳理解成围绕着内核的应⽤程序,⽽内核就是能操作硬件 的程序)。关于内核多插⼀嘴:内核负责管理系统的进程、内存、设备驱动程序、⽂件和⽹络系统等等,决定 着系统的性能和稳定性。是连接应⽤程序和硬件的桥梁。 内核就是操作系统背后⿊盒的核⼼。
根据进程访问资源的特点,我们可以把进程在系统上的运⾏分为两个级别:
⽤户态(user mode) : ⽤户态运⾏的进程或可以直接读取⽤户程序的数据,能执行部分指令。系统态(kernel mode):可以简单的理解系统态运⾏的进程或程序⼏乎可以访问计算机的任何资 源,能执行全部的指令,不受限制。我们运行的程序基本都是运行在用户态,如果我们调用操作系统提供的系统态级别的子功能咋办呢?那就需要系统调用了!
也就是说在我们运行的用户程序中,凡是与系统态级别的资源有关的操作(如文件管理、 进程控制、内存管理等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。
这些系统调⽤按功能⼤致可分为如下⼏类:
设备管理。完成设备的请求或释放,以及设备启动等功能。⽂件管理。完成⽂件的读、写、创建及删除等功能。进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。进程通信。完成进程之间的消息传递或信号传递等功能。内存管理。完成内存的分配、回收以及获取作业占⽤内存区⼤⼩及地址等功能。外中断 :由 CPU 执行指令以外的事件引起,如 I/O 完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。
异常 :由 CPU 执行指令的内部事件引起,如非法操作码、地址越界、算术溢出等。
陷入 :在用户程序中使用系统调用
