大家好,又见面了,我是你们的朋友全栈君。
计算机系统的层次结构
- 用户
- 应用程序
- 操作系统
- 纯硬件:CPU、RAM、ROM
其中,操作系统:
- 从操作系统层往两侧看:负责管理协调硬件、软件等计算机资源的工作
- 从上往下看:为上层的应用程序和用户提供简单易用的服务
- 从下往上看:操作系统系统软件,而不是硬件
定义
Operating System是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境。他是计算机系统中最基本的系统软件。
操作系统的功能和目标
- 作为系统资源的管理者(从操作系统层向两侧看)
进程
是一个程序的执行过程。执行前需要将该程序放到内存中才能被CPU处理
以用QQ和朋友进行视频聊天为例:
- step1:在各个文件夹中找到QQ的安装位置:操作系统需要将各种文件有组织地存放起来-文件管理
- step2:双击打开QQ.exe可执行文件:操作系统需要把程序的相关数据放入内存中-内存管理
- step3:QQ程序正常运行:对应的进程被处理器CPU处理,要等待资源的分配后才可被运行-处理机管理
- step4:开始和朋友进行视频聊天:需要把摄像头设备分配给进程,当进程使用完摄像头后要把这个设备回收-设备管理
目标
安全高效
- 作为用户和计算机硬件之间的接口(自下往上看)
操作系统需要提供的功能或者说用户接口
- 命令接口:1.联机命令接口 2.脱机命令接口
- 程序接口
- GUI(图形用户界面)
命令接口
1.1联机命令接口,又称交互式命令接口
用户说一句,操作系统做一句
1.2脱机命令接口,又称批处理命令接口
用户说一堆,操作系统做一堆
相比于程序接口,命令接口是可以被用户直接使用的
例如在terminal下输入指令,可以得到反馈,这就是交互的体现,而这些指令是可以直接被用户所使用的
程序接口
例如在windows操作系统下,常见.dll文件。程序员在程序中调用user32.dll文件即可实现窗口创建等功能(该调用过程即为系统调用)。只能通过用户程序间接地使用。
程序接口(仅运行用户通过程序间接使用):由一组系统调用组成(程序接口=系统调用=系统调用指令=广义指令)
GUI图形用户界面(Graphical User Interface)
用户可以使用形象的图形界面进行操作,而不需要记忆复杂的命令、参数
换言之,就是将复杂的操作指令可视化,使用图形操作的方式来表示操作指令的执行
- 作为最接近硬件的层次(从上往下看)
需要提供的功能和目标
实现对硬件机器的拓展
没有任何软件支持的计算机称为裸机。在裸机上安装的操作系统可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。
通常把覆盖了软件的机器称为扩充机器,又称为虚拟机
类比
硬件:锤子、木材、钉子…
操作系统:优秀的工匠
操作系统对硬件机器的拓展:通过优秀的工匠,这些简单的原料可以组织成房子、独木舟…普通用户可以直接使用工匠提供的房子、独木舟,而无需关系这些东西在底层是如何组织起来工作的
换言之,操作系统对硬件机器的拓展,实际上就是操作系统对硬件进行调用,封装得到直接对硬件进行调用的功能给用户
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129065.html原文链接:https://javaforall.cn