前言

操作系统是控制管理整个计算机系统的软件与硬件资源,合理地组织和调度计算机的工作和资源的分配,进而为用户和应用程序提供方便接口与环境的程序集合,是一种最基本的系统软件。目前常用的计算机操作系统有windows,linux等,本文将从宏观的角度总结操作系统的工作流程,将分散的知识链接在一起,有助于理解操作系统。

如果哪里有错误,请留言提醒我。

要让一个操作系统在计算机上运行起来,首先需要一个安装操作系统的硬盘。

硬盘

每块硬盘在厂家生产出来出厂之前,会经历一次物理格式化,物理格式化是将硬盘划分出柱面和磁道,再将磁道划分为一个一个扇区(也就是盘块),因此在出厂时,硬盘的每一块已经划分好,相应每一块有一个物理地址。

在使用硬盘之前先将硬盘分区,分区的目的是方便管理和使用文件,同时分区后簇变小,由于一个簇只能被一个文件占有,若文件很小会造成空间浪费,因此分区有利于减小内部碎片,提高存储利用率。分区之后要进行逻辑格式化,不同于物理格式化,逻辑格式化的目的是給磁盘的分区装入文件系统,以管理磁盘中的文件,常见的文件系统有FAT32、NTFS、exFAT、EXT4等,每个分区的文件系统可以不同。

计算机开机过程简述

按下电源键后,启动CPU,CPU会运行BIOS内部程序,(BIOS是“Basic Input Output System”的缩写,即基本输入输出系统,它是一组固化到计算机内主板上一个ROM芯片上的程序,是个人电脑启动时加载的第一个软件,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。引自百度百科)首先运行BIOS里的boot block(引导程序),检查code block(普通程序)代码无误后,转去执行code block。将磁盘的第一个盘块读入内存,并且将FAT表及在FAT表之后的根目录读入内存(FAT表是文件分配表,是在逻辑格式化时选择FAT32文件系统所生成,FAT表的每一项对应于磁盘中的一个盘块),第一个盘块里存放引导程序,执行引导程序,在根目录下的某个目录下找到操作系统的内核程序,载入内存,计算机由操作系统开始掌管。

目录和文件的创建

001

注:假定最开始的磁盘是这样的

假定最开始的磁盘如上图所示,方框上面一行是块号(虽然1号块画的比其他块都要大,但那是为了说明问题,实际上所有的块同样大),第0块存放引导块,第1块存放FAT表(假定FAT表只占一块),第二、三块存放根目录的文件目录···FAT表项假定-1表示某文件最后一个盘块,-2表示该盘块空闲。根目录的文件目录下已存有logo.png、windows目录等文件的FCB,FCB包含若干信息,为简化起见,只保存文件名,文件类型和文件存放的物理块号。

现在在根目录下创建一个新的目录A,首先创建目录项FCB,并在FAT表中寻找一个空闲的盘块(比如4号块)分配给目录A用来存放A对应的目录文件。如下图:
002

注:在根目录下创建A并且在A目录下创建B目录之后

如上图所示,根目录下创建了A目录并且A目录下创建了B目录,并且B目录下又存了一些文件,随着文件的添加删除,盘块被系统的分配回收,7号盘块被占用,10号盘块被占用,而中间的6、8、9是空闲的。

安装应用程序

现假定要在A目录下装一个WPS并且假定WPS占地4个盘块,首先创建文件的FCB,并寻找4个空闲盘块(假定为6、8、9、11块)分配给WPS,WPS安装程序将WPS的代码数据写入分配给他的4个盘块,系统修改相应的FAT项,如图所示:
安装WPS之后:
003
005

启动应用程序

安装WPS之后就可以运行WPS了,想象你双击WPS在桌面的快捷方式,快捷方式类似于一种软链接,操作系统根据快捷方式提供的路径开始查找文件,先从根目录找到目录A的FCB,得到目录A的目录文件所在的磁盘块号,从磁盘将目录A的目录文件调入内存,在其中寻找WPS.exe的FCB,由此得到WPS程序存放的磁盘块号,将WPS逻辑上的第0块(即物理上的磁盘第6块)调入内存。

运行应用程序

在磁盘第6块调入内存的同时,操作系统创建进程,也就是创建进程的PCB(PCB是进程存在的唯一标志!),在创建PCB时,也创建了进程对应的页表,并初始化页表,页表存放在进程的PCB中。PCB创建成功后,经系统调度,进程开始获得处理机运行。
006
注:调入6号块之后的内存和页表

如图所示,6号块调入内存时,系统会在内存中该进程的驻留集中寻找一个空闲的页框,以便盘块内容调入页框中,假定选定211号页框。同时系统初始化进程页表,填写页号、页框号、有效位、修改位、磁盘块号等,其中磁盘块号随着进程的第0块调入内存,所有的磁盘块号都会通过查阅FAT表填入页表。

当前系统中可能有多个进程,因此在内存的系统区,存在多个PCB,多个进程涉及到进程的并发执行,从而有进程调度以及进程的状态切换,同时对于临界区的访问,还涉及到死锁、同步和互斥。

在请求式分页管理方式中,不必调入全部的页面进程便开始运行。假定调入进程的第0块后,WPS开始运行,如果在运行时需要用到第1块的数据或者代码,查阅页表后页面不在内存中且得知缺失的页面存放在磁盘第8块,此时产生缺页中断,请求操作系统调入第1块(磁盘块号第8块)(假定页框为985),与此同时进程阻塞,页面调入后进程重新回到原来中断的代码执行。如果驻留集已满,要调入新的磁盘块,此时需要利用页面置换算法,换出一个页面,将所需页面调入内存。

007
注:调入8号块之后的内存和页表

保存文件

用WPS撰写的文档,在点击保存或者另存为前会保存在内存新页中。当需要保存文档时,通过系统调用,在默认路径或者指定路径下的目录文件中创建FCB(xx.doc)(创建FCB的过程如前所述)。保存时,进程首先打开 (open系统调用) xx.doc(刚刚创建的那个),然后将内存中的文档内容写入(write系统调用)xx.doc,完成文档的保存。

结语

以上就是操作系统概述,是根据咸鱼学长的讲解总结的操作系统从启动到应用程序运行的大致工作流程,将整个操作系统知识串了起来,对于宏观上掌握408考研操作系统大有裨益,受益匪浅。