系统调用概念

系统调用是操作系统提供给用户程序调用的接口。用户程序通过接口来获得操作系统内核提供的服务。系统调用可被看成是一个内核与用户空间程序交互的接口——它好比一个中间人,把用户进程的请求传达给内核,待内核把请求处理完毕后再将处理结果送回给用户空间。系统调用的概念涉及到内核态和用户态:

内核态:当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。

用户态:当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态。因为中断处理程序将使用当前进程的内核栈。这与处于内核态的进程的状态有些类似。

内核态执行的代码是是操作系统特有的,代码一般简单精炼。应用程序通过系统调用进入内核态执行达到实际访问计算机其他资源的目的。

应用代码从用户态到内核态是通过系统调用实现的。实现过程如下:

1、准备调用参数

2、系统调用进入内核态

3、内核态执行

4、内核态的返回数据复制到用户态

5、用户态得到调用结果

常见的unix系统调用主要分为三类:文件操作系统的系统调用,控制类的系统调用,信号和时间类的调用。

(1) 文件操作的系统调用

(create ,open,read,write,close,link,unlink,

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值