UNIX/Linux体系结构与系统调用

操作系统在计算机体系中的位置

Alt

内核的功能

内存管理

  • 内存分配调用
    包括静态分配方式、动态分配方式;
  • 内存保护
    确保每个程序在自己的内存空间运行、互不干扰。方法是使用界限 寄存器或存储保护键;
  • 地址映射
    实现程序的逻辑地址与存储器的物理地址之间的映射功能;
  • 内存扩充
    从逻辑上扩充物理内存,以允许比物理内存更大的程序在机器内运 行,为此操作系统必须具有:请求调入功能与置换功能

进程管理

  • 进程控制
    包括进程创建、进程撤销、进程阻塞、进程唤醒
  • 进程协调
    由于进程运行的异步性,因此进程同步的任务是对诸进程的运行协 调,包括两种方式:进程互斥方式与进程同步方式;
  • 进程通信
    主要完成同一台机器上不同进程间通信和不同机器上进程间的通信, 以共同完成一相同的任务;
  • 进程调度
    操作系统按照一定的规则对等待运行的多道程序进行调度,以保证 每个程序都能有机会得到运行,并最终完成

文件管理

  • 文件存储空间的管理
    为每一文件分配必要的外存空间。为提高外部存储 空间的利用率,系统应设置相应的数据结构,用于记录文件存储空间的使用情况;
  • 目录管理
    为了方便对用户的文件进行管理,对文件系统建立一定结构的目录 结构,同时要求快速的目录查询手段;
  • 文件的读、写管理和存取控制
    利用一定的系统调用对文件进行读写操 作。同时,为防止系统中的文件被非法访问和窃取,文件系统中必须提供有效存取 控制功能;

设备管理

  • 缓冲管理
    管理各种类型的缓冲区,如字符缓冲区和块缓冲区,以缓和CPU和 I/O速度不匹配的矛盾,最终达到提高CPU和I/O设备的利用率,进而提高系统吞吐 量的目的;
  • 设备管理
    根据用户的I/O请求,为之分配其所需要的设备;
  • 设备处理
    又称为设备驱动程序,任务是实现CPU和设备控制器之间的通信;
  • 设备独立性和虚拟设备
    一方面保证用户程序独立于物理设备,另一方面 保证多个进程能并发地共享同一个设备;

UNIX/Linux操作系统架构

在这里插入图片描述

系统调用与库函数

操作用户接口

  • 命令接口:以命令形式呈现在用户面前,方便用户直接或间接控制自己的作业
  • 程序接口:为应用程序使用系统功能而设置,是应用程序取得操作系统服务的 唯一途径。由一系列系统调用组成,每一个系统调用都是一个能完成特定功能的子 程序。
  • 图形接口:采用了图形化的操作界面,将各种应用程序和文件,直观、逼真地 表示出来。

系统调用

  • 系统调用是内核提供的程序接口,是应用程序和硬件设备之间的中间层:
    • 为应用程序提供了系统服务和硬件抽象能力,例如,当需要读文件时,应用程序可以不管磁盘类 型和介质,甚至不用去管文件所在的文件系统到底是哪种类型;
    • 系统调用保证了系统的稳定和安全
    • 每个进程都运行在虚拟系统中

系统调用的类型

  • 文件操作类系统调用:如打开、创建、读取、删除、修改文件;
  • 进程控制类系统调用:如创建进程、设置或获取进程属性等;
  • 通信类系统调用:创建进程间的通信连接,发送、接收消息,或其他的通信 方式;
  • 设备管理类系统调用:打开、关闭和操作设备;
  • 信息维护类系统调用:在用户程序和OS之间传递信息。例如,系统向用户 程序传送当前时间、日期、操作系统版本号等。

系统调用与C库函数的关系

  • 系统调用和C库函数之间并不是一一对应 的关系,可能几个不同的函数会调用到同 一个系统调用:
    • malloc函数和free函数都是通过sbrk系统调用来扩大 或缩小进程的堆栈空间;
    • execl、execlp、execle、execv、execvp和execve 函数都是通过execve系统调用来执行一个可执行文件
  • 并非所有的库函数都会调用系统调用,例 如,printf函数会调用write系统调用以输 出一个字符串,但strcpy和atoi函数则不 使用任何系统调用
    在这里插入图片描述

C库函数、系统调用

  • 一般而言,应用程序使用API而不是直接使用系统调用来编程
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值