- 操作系统中主要操作硬件的,主要可以分为内存管理、文件管理、进程管理、设备管理几个模块。
内存管理
- 内存分配调用: 包括静态分配方式、动态分配方式;
- 内存保护:确保每个程序在自己的内存空间运行、互不干扰。方法是使用界限寄存器或存储保护键;
- 地址映射:实现程序的逻辑地址与存储器的物理地址之间的映射功能;
- 内存扩充:从逻辑上扩充物理内存,以允许比物理内存更大的程序在机器内运行,为此操作系统必须具有:请求调入功能与置换功能。
进程管理
- 进程控制:包括进程创建、进程撤销、进程阻塞、进程唤醒;
- 进程协调:由于进程运行的异步性,因此进程同步的任务是对诸进程的运行协调,包括两种方式:进程互斥方式与进程同步方式;
- 进程通信:主要完成同一台机器上不同进程间通信和不同机器上进程间的通信,以共同完成一相同的任务;
- 进程调度:操作系统按照一定的规则对等待运行的多道程序进行调度,以保证每个程序都能有机会得到运行,并最终完成。
文件管理
- 文件存储空间的管理:为每一文件分配必要的外存空间。为提高外部存储空间的利用率,系统应设置相应的数据结构,用于记录文件存储空间的使用情况;
- 目录管理:为了方便对用户的文件进行管理,对文件系统建立一定结构的目录结构,同时要求快速的目录查询手段;
- 文件的读、写管理和存取控制:利用一定的系统调用对文件进行读写操作。同时,为防止系统中的文件被非法访问和窃取,文件系统中必须提供有效存取控制功能;
设备管理
- 缓冲管理:管理各种类型的缓冲区,如字符缓冲区和块缓冲区,以缓和CPU和I/O速度不匹配的矛盾,最终达到提高CPU和I/O设备的利用率,进而提高系统吞吐量的目的;
- 设备分配:根据用户的I/O请求,为之分配其所需要的设备;
- 设备处理:又称为设备驱动程序,任务是实现CPU和设备控制器之间的通信;
- 设备独立性和虚拟设备:一方面保证用户程序独立于物理设备,另一方面保证多个进程能并发地共享同一个设备。
操作系统接口
-
命令接口:以命令形式呈现在用户面前,方便用户直接或间接控制自己的作业
-
程序接口:为应用程序使用系统功能而设置,是应用程序取得操作系统服务的唯一途径。由一系列系统调用组成,每一个系统调用都是一个能完成特定功能的子程序。
-
图形接口:采用了图形化的操作界面,将各种应用程序和文件,直观、逼真地表示出来。
-
根据上图可以看出,malloc库函数是调用系统调用的sbrk实现的,由此可知,有些库函数也会通过系统调用去操作硬件来实现其功能,其中printf就是通过write系统调用实现的,但也不全是,像strcpy和atoi等库函数就不会。
-
-
这个图上一节的图片有一定的意思,可以看到Application可以直接调用System Call。