操作系统执行两个基本的功能:机器拓展和资源管理。
操作系统作为拓展机(虚拟机)
由于机器语言级别的编程复杂性,我们应用一层高级的抽象来管理硬件,比如把磁盘看作
一组命名好的文件,每个文件可以被打开来进行读写操作然后关闭,硬件实现的细节将不会呈现给编程
人员。
这样看来,操作系统提供给程序员一个和硬件等价的扩展机或者说是虚拟机,有了这层
虚拟机程序员可以轻松编程。那操作系统是如何实现让程序员对硬件进行轻松操作的呢?概括地说,
程序中可以通过使用系统调用来包含操作系统提供的服务。
操作系统作为一个资源管理器
从另一个角度看,操作系统在各种相互竞争的程序之间提供硬件资源的有序分配,这里的硬件
资源包括处理器,内存和I/O设备等。
当一台电脑或网络有多个使用者时,操作系统不仅管理硬件资源还要合理分配文件或数据信息,
总的来说,操作系统的工作就是跟踪谁将要使用那些资源,授权资源请求,占据这部分资源的使用以及调节
不同用户或程序之间的矛盾请求。
复用资源的管理主要包含两个方面:时间和空间。一种资源是时间复用资源则不同的程序轮流使用它。
操作系统决定时间复用资源下一个执行哪个程序以及执行多长时间。一种资源是空间复用的则不同使用者分别占据
这块空间的不同部分。比如内存,更有效地资源分配方式是多个程序同时保存在内存的不同区域中而不是一次中保存
一个程序。