学习路线-后端-操作系统-操作系统是如何工作的? 「爱情、让人受尽委屈。」 2022-12-03 15:43 183阅读 0赞 # 操作系统的定义 # 操作系统是一个一直运行的在计算机中的程序,他管理着计算机的硬件和软件资源,提供以下服务给计算机的程序。 # 操作系统的功能 # * 用户接口。如图形界面、终端等 * 程序的执行 * I/O操作 * 文件系统操作 * 沟通 * 错误侦探 * 资源分配。如程序分配CPU、分配内存 # 操作系统的结构 # * 整体结构:结构比较简单,没有清晰的层次和模块划分。这种结构,初期看起来会比较简单。由于耦合度高,后期比较难以维护,容易出现安全问题。 * 分层结构:系统分为多个层,较低的层提供一系列方法给提供给高层调用。这是一种松耦合的结构,系统中某一个部分改变对其他部分没有很大的影响,易于进行系统测试 * 微核心结构:把所有不必要的组件从内核移除,作为用户层的软件去实现,把内核最小化。这样的结构易于系统扩展,添加新的系统服务不需要修改内核 * 组件化结构:内核包含一些核心的组件,其他系统服务模块可以通过动态加载来实现 现在操作系统一般采用上面的某种结构。但有的操作系统会采用混合多种不同的结构。大部分现在操作系统都采用一种组件化结构为Loadable Kernel Moudules(LKMs)。 虽然每个系统的结构各不相同,但他提供的功能大致是相同的。如进程管理、文件管理、设备管理等功能是必要的。每个系统为了实现他要提供的功能,采用一个合适的结构就好。最重要的就是把功能很好的实现,以及方便操作系统能够持续的维护和优化。 现代linux系统内核结构采用组件化结构,如图: ![format_png][] # 为什么需要操作系统 # 操作系统是连接硬件和用户软件的媒介。他对硬件资源进行管理,提供一个让用户软件可以运行的环境,以及给用户提供一个图形接口(GUI)让用户可以方便使用硬件资源。没有操作系统提供的环境,我们就无法先收各种各样的应用软件带来的便利。 # 操作系统是如何工作的 # ## 操作系统启动过程 ## 当电脑按下开机电源键时,位于主板上的固件ROM中的启动程序(Boot Loader)会开始运行,常见的启动程序会有BIOS和UEFI。启动程序回加载操作系统的启动程序,进而把整个操作系统加载到内存中并开始执行操作系统。然后安装加载驱动程序,创建初始化系统进程,启动必要的服务(如Web服务器、数据库等),最终出现系统登陆的页面。 ## 操作系统时如何为用户程序服务的 ## 操作系统完成启动后,就可以登陆系统。用户可以根据自己的需求运行相应的程序,如浏览器、文本编辑器等。 一个程序的运行,需要把可执行文件加载到内存中,需要使用CPU去执行。然而,硬件资源(CPU、内存、硬盘等)是被操作系统所管理的,为了提高安全和高效,用户程序不能直接使用硬件资源,硬件资源由操作系统统一管理和分配。 操作系统为用户程序提供了一系列的接口,通过调用对应的接口获取相应的服务和资源。这一系列接口称为系统调用(System Call)接口。 常见的系统调用接口 * 进程控制:创建子进程,获取进程属性,分配额外内存空间等等。 * 文件管理:创建和删除文件,打开和关闭文件,读写文件等等。 * 设备管理:请i去连接设备,关闭设备,读写设备等等。 ## 操作系统是如何管理硬件和软件资源的 ## 为了更高效的使用硬件资源,需要合理的管理和分配资源。操作系统负责给进程分配资源。关于CPU的分配,一般使用轮询调度算法(Round-Robin Scheduing)),即每个进程一次被CPU执行一个小的时间片段。关于内存的分配,一般采用的是虚拟内存,它可以使用进程的逻辑内存空间远大于实际的物理内存空间,从而运行更多的程序,更大程度的使用计算机硬件资源。 [format_png]: /images/20221123/70d4baa3b64344c7bbf66077ec265ade.png
还没有评论,来说两句吧...