1.6 系统调用

1.6 系统调用
本节主要内容
    1.什么是系统调用,有何作用?
    2.系统调用和库函数的区别
    3.系统调用背后的过程
    
1.什么是系统调用,有何作用?
    1.操作系统作为用户与计算机之间的接口,需要向上提供一些简单易用的服务。
        主要包括命令接口和程序接口。其中,程序借口由一组系统调用组成。
    2.用户接口
        1.命令接口(允许用户直接使用)
            1.联机命令接口
                用户说一句,系统做一句
            2.脱机命令接口
                用户说一堆,系统做一堆
        2.程序借口(允许用户通过程序简介使用)
            由一组系统调用组成
    3.“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,
        可以理解为一种可供应用程序调用的特殊函数,
        应用程序可以发出系统调用请求来获得操作系统的服务。
    4.操作系统为什么要提供“系统调用”的功能?
        操作系统提供“系统调用”功能,用户进程想要使用一些共享资源时,
        只能通过系统调用向操作系统发出请求。操作系统会对各个请求进行协调管理。
    5.应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,
        因此在用户程序中,凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),
        都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。
        这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
    6.系统调用会使处理器从用户态进入核心态
2.系统调用的分类(按照功能分类)
    1.设备管理
        完成设备的 请求/释放/启动 等功能。
    2.文件管理
        完成文件的 读/写/创建/删除 等功能。
    3.进程管理
        完成进程的 创建/撤销/阻塞/唤醒 等功能。
    4.进程通信
        完成进程之间的 消息传递/信号传递 等功能。
    5.内存管理
        完成内存的 分配/回收 等功能。
    **注意:
        1.系统调用相关处理涉及到对系统资源的管理、对进程的控制,
            这些功能需要执行一些特权指令才能完成,
            因此系统调用的相关处理需要在核心态下进行。
        2.凡是与资源有关的操作、会直接影响到其他进程的操作,
            一定需要操作系统介入,即需要通过系统调用来实现
3.系统调用与库函数的区别
    1.系统调用是操作系统向上提供的接口
    2.有的库函数是对系统调用的进一步封装
    3.当今编写的应用程序大多是通过高级语言提供的
        库函数间接进行系统调用

在这里插入图片描述

4.系统调用背后的过程
    1.传递系统调用参数
    2.执行陷入指令
    3.执行系统调用相关服务程序
    4.返回用户程序
    **注意:
        1.系统调用发生在用户态,对系统调用的处理发生在核心态
        2.执行陷入指令会产生内中断,使处理器从用户态进入核心态

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值