概述
一、简单描述
1、系统资源的管理者;
2、最接近硬件的一层软件;
3、向上层提供方便容易使用的服务;
二、提供的功能
1、处理机管理;
2、储存器管理;
3、文件管理;
4、设备管理;
举例说明:打开QQ的时候,需要找到安装的位置(文件管理),双击打开qq的时候需要将qq放入到内存中去(储存器管理),qq程序被处理机处理,开qq视频的时候需要获取摄像头的权限(设备管理);
三、封装思想
内部的硬件只能识别01010之类的二进制信号,这个时候需要操作系统去封装一层,将不利于用户去阅读的二进制编码优化成方便调用的服务,
四、操作系统的特点
1、并发:宏观同时发生,微观交替发生;
2、并行;多个事件同时发生;
3、共享
(一)互斥共享:一段时间内只允许一个进程访问资源;
(二)同时共享的方式:允许一段时间多个进程同时对他们进行访问;
4、虚拟:相当于建立了映射关系,将内存的东西映射到硬件之中去;
5、异步:多个程序运行的情况之下,允许多个程序并发执行,但是由于资源有限,进程的执行不是一贯到底的,需要走走停停;
五、操作系统的发展历史
缺点:用户独占用
六、程序是如何运行的
1、用户态和内核态
用户态是用户模式、内核态是内核模式,当操作系统需要工作的时候需要切换为内核态,退出工作的时候切换为用户态,有程序状态寄存器来记录当前操作系统处于内核态还是用户态;
运行流程的例子
假设你是一名顾客在一家餐厅用餐,餐厅有一个厨师负责烹饪食物,而你作为顾客只能在餐厅的就餐区域内进行点餐、享用餐点。这里就可以将就餐区域看作用户态,厨师看作内核态。
在用户态,你只能在就餐区域内享用餐点,不能直接进入厨房进行烹饪操作,也不能直接控制厨房的设备和资源,比如燃气灶、刀具等。你只能通过服务员(类似于系统调用接口)向厨师发出菜单(类似于系统调用请求),然后厨师根据菜单进行烹饪(类似于内核态下的操作),最后将做好的餐点送到你的就餐区域供你享用(类似于系统调用结果返回给应用程序)。这时,你可以在用户态下享用餐点,但不能直接控制厨房的操作。
而在内核态,厨师具有更高的权限,可以自由进入厨房,使用各种设备和资源,进行烹饪操作,如调整燃气灶的火候、使用刀具进行切割等。厨师在内核态下具有更高的权限,可以直接控制厨房的操作,执行特权操作。
类似地,在计算机系统中,应用程序在用户态下只能访问受限的资源,并通过系统调用接口向操作系统发起请求以执行需要特权的操作。而操作系统在内核态下具有更高的权限,可以直接访问系统的核心功能和资源,执行特权操作。用户态和内核态之间的切换需要经过系统调用接口,类似于餐厅中的服务员将菜单传递给厨师进行处理,然后将处理结果返回给应用程序。
--------------------------------------------END----------------------------------------