计算机系统之核心——操作系统 的主要任务是什么?
我们都知道,操作系统在计算机系统中占据很高的地位,是计算机系统的内核与基石。在这里,我简要谈谈我理解中的操作系统的地位和其负责的主要任务。
操作系统之地位
首先我们来具体了解下操作系统的地位:
-
应用程序和计算机硬件之间的中介
操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统提供的用户界面,输入命令;操作系统则对命令做出解释,驱动硬件设备实现用户的请求。 -
资源分配器:管理着所有资源的分配
所有系统资源归操作系统所管理,并由其进行分配。
-
是一个控制程序:控制程序的执行
通过调度算法控制和调节程序的执行。
主要任务
由此可见,操作系统的功能涉及范围十分的广,不仅身兼中介,还管理着系统资源,并控制着程序的执行。操作系统的功能固然十分强大,但操作系统的主要任务究竟是什么呢?
下面我们从进程管理、内存管理、文件系统管理和大容量存储器管理四个方面来简要谈谈操作系统所负责的任务:
进程管理
进程的执行需要一定的资源,如cpu时间、内存、文件、I/O设备等;在任何时候,一个进程同一时刻只能执行一条指令。
操作系统负责进程管理的以下活动:
- 在CPU上调度进程和线程(即如何为进程和线程分配cpu时间)
- 创建和删除用户进程和系统进程(创建过程中为进程分配资源和空间,删除时回收进程所占有的资源和空间)
- 挂起和重启进程(即从running->ready和ready->running,一般通过中断实现)
- 提供进程同步机制(进程同步机制与临界区相关,主要涉及的问题是同一时刻资源访问的唯一性问题)
- 提供进程通信机制(进程间的信息交流)
内存管理
内存一般是CPU能直接寻址和访问的唯一的大容量的存储器。
操作系统在内存管理中负责以下活动:
- 记录内存的哪些部分在被使用以及被谁使用
- 决定哪些进程(或进程的一部分)会被调入和调出内存(即内存的分配)
- 根据需要分配和释放内存空间
文件系统管理
操作系统在文件系统管理中主要负责以下活动:
- 创建和删除文件
- 创建和删除目录,以便组织文件(将不同的文件归于不同的目录下)
- 提供文件和目录的操作原语(对文件的读写和目录的读写等都称为操作原语)
- 映射文件到外存(文件实际存放于外部存储器中)
- 备份文件到稳定的存储介质
大容量存储器管理
操作系统负责以下活动:
- 空闲空间管理(通过列表等方式记录磁盘的各个空闲块,当接受到分配请求时根据该列表分配空闲的块)
- 存储空间分配(如何分配磁盘中的各个块)
- 硬盘调度(通过设计适当的调度算法,节省寻道时间,加快磁盘的平均访问时间)
磁盘调度算法有六种:FCFS(先来先服务)、SSTF(最短寻道时间优先)、SCAN(扫描算法)、C-SCAN(循环扫描)、LOOK(SCAN的一种优化)、C-LOOK(C-SCAN的一种优化)。
以上便是我对于操作系统主要任务的大致理解。对于内存管理的详细内容在之前的帖子已经谈到过,有兴趣的伙伴可以去看看。文件系统等其他方面管理的详细内容,日后我可能也会把我的理解分享出来和大家一起交流
。