美文网首页程序员
操作系统笔记之系统调用机制

操作系统笔记之系统调用机制

作者: 常青的秘密 | 来源:发表于2017-03-25 22:43 被阅读54次

系统调用是什么

系统调用:用户在编程是可以调用的操作系统功能

系统调用做什么

  • 系统调用是操作系统提供给编程人员的唯一接口
  • 使CPU状态从用户态陷入内核态

参数传递过程(用户到内核)

  • 由陷入指令自带参数
  • 通过通用寄存器传递参数
  • 在内存中开辟专用堆栈区

系统调用执行过程

  1. 中断/异常机制:硬件保护现场;通过查询向量表把控制权转给系统调用总入口程序
  2. 系统调用总入口程序:保存现场;将参数存于内核的栈里;通过查系统调用表把控制权转给响应的系统调用处理例程或内核函数
  3. 执行系统调用例程
  4. 恢复现场,返回用户程序

例:LINUX的系统调用

  • 陷入指令选择128号(int $0x80)

  • 门描述符

    • 系统初始化时:对IDT表中的128号门初始化

    • 门描述符的2、3两个字节:内核代码段选择符

      0、1、6、7四个字节:偏移量

    • 门类型:15,陷阱门

    • DPL:3,与用户级别相同

  • 切换栈( 用户栈->内核栈),CPU从任务状态段TSS中装入新的栈指针(SS:ESP),指向内核栈

  • 用户栈信息(SS:ESP)、EFLAGS、用户态CS、EIP寄存器的内容压栈(返回)

  • 将EFLAGS压栈后,TF复位,IF不变

  • 用128在IDT中找到该门描述符,找出段选择符装入代码段寄存器CS

  • 代码段描述符中的基地址+ 陷阱门描述符中的偏移量--->定位入口地址

相关文章

  • 操作系统笔记之系统调用机制

    系统调用是什么 系统调用:用户在编程是可以调用的操作系统功能 系统调用做什么 系统调用是操作系统提供给编程人员的唯...

  • 3、操作系统运行环境与运行机制2(操作系统笔记)

    四、系统调用机制 这是操作系统向用户提供的接口。 4.1 系统调用 系统调用是什么是用户在编程时可以调用的操作系统...

  • (三)操作系统运行环境

    操作系统运行环境 CPU状态 中断/异常机制 操作系统运行机制 系统调用 处理器状态(模式) 中央处理器(CPU)...

  • 异常控制流(ECF)作用

    应用程序通过使用一个叫做陷阱或者系统调用的ECF形式,向操作系统请求服务。 操作系统为应用程序提供强大的ecf机制...

  • 消息机制与模拟消息

    消息机制与模拟消息 消息机制 硬件产生事件 被操作系统捕获,封装成消息 操作系统发送到系统消息队列 再由操作系统由...

  • 彻底理解Android Binder通信架构

    重点推荐 Android系统篇之—Binder机制和远程服务调用机制分析http://www.520monkey....

  • 1.3 操作系统初试。

    五大部件: 操作系统: 内核:kernel 系统调用:system call 操作系统通过调用库(lib),库存在...

  • Linux系统基础原理

    (静态角度看)操作系统的组成部分?硬件、操作系统、库、库调用、系统调用 系统调用和库调用意味着什么?环零指令和环三...

  • 第一节linux系统简介

    1、系统调用+内核=操作系统 2、操作系统的发展:批处理操作系统->分时操作系统->UNIX->MINIX->li...

  • Linux系统调用、用户编程接口和系统命令区别

    1、系统调用 系统调用就是操作系统提供给用户程序调用的一组特殊的接口,用户程序可以通过这组特殊的接口来获取操作系统...

网友评论

    本文标题:操作系统笔记之系统调用机制

    本文链接:https://www.haomeiwen.com/subject/cbkhottx.html