美文网首页
操作系统学习笔记(十)

操作系统学习笔记(十)

作者: itczt | 来源:发表于2019-04-21 18:05 被阅读0次

系统调用

用户界面的定义

OS提供给用户控制计算机的机制,又称用户接口。

操作界面

系统调用(System Call,系统功能调用,程序界面)



例一:linux;两个整数相加;函数add()

#include <stdio.h>
{
return (a+b);
}
int main(void)
{
int sum = add(100,300);
}

例二:Dos;21h中断显示字符串(09号功能)

String DB 'Hello!'  :定义要显示的字符串
........
Mov DX,string     :DX<——字符串地址
Mov AH,09H :AH<——09H号功能
INT 21h

特点:09号功能涉及外设(显卡)操作

例三:linux 打印一个字符串(printf)

#include <stdio.h>
int main(void)
{
printf("Hello world");
exit(0);
}

特点:函数涉及外设(显卡)操作,涉及进程操作

系统调用的定义

操作系统内核为应用程序提供的服务/函数
21h(09),printf(),exit()


系统调用的特点

  • 一般涉及资源完成或硬件的操作
  • 运行于核态
  • 每个系统调用具有唯一的编号:ID
  • 调用过程会产生中断:自愿中断


系统调用的中断过程

Dos利用INT 21h中断实现系统调用
string DB'Hello!'  :定义显示的字符串
......
MOV DX,string  :DX<——字符串地址
MOV AH,09h  ;AH<——09H号子功能
INT 21h

特点:利用AH寄存器存放在系统调用的编号。

Dos利用INT 21h中断实现系统调用

  • 01:程序终止
  • 02:键盘输入并且显示
  • 03:显示输出
  • 04:异步通信输入
    ·····
  • 08:键盘输入无回显
  • 09:显示字符串
    ······
  • 39:建立子目录
  • 3A:删除子目录
  • 3B:改变当前目录
  • 3C:异步通信输入
    ······
  • 3F:读文件
  • 40:写文件
    ······

Linux利用INT 80h中断实现系统调用

输出字符串:Hello world:

MOV EBX,1   ;EBX送1表示stdout
MOV ECX,MSG  ;字符串的首地址送入ecx
MOV EDX,14  ;字符串的长度送入edx
MOV EAX,4   ;指定系统调用的编号
INT 80h     ;中断;输出字串
MSG :DB “Hello world!”

特点:利用EAX寄存器存放系统调用的编号。
···
例:

include <stdio.h>

int main(void)
{
printf("Hello world");
exit(0);
}
···
特点:

  • 类似API函数
  • 在高级语言中使用
  • 含有“INT 80h”中断指令,执行相应的系统调用

隐式系统调用

编译时隐式系统调用转化为显示的系统调用:INT 80h


linux系统调用的工作原理


相关文章

  • 操作系统学习笔记(十)

    系统调用 用户界面的定义 OS提供给用户控制计算机的机制,又称用户接口。 操作界面 系统调用(System Cal...

  • 操作系统笔记0-前言

    前言 主要记录大三学习操作系统的整理笔记。 操作系统(英语:operating system,缩写作 OS)是管理...

  • 操作系统 --- 学习笔记

    1. 操作系统基本特征 (1) 并发 并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个...

  • 后台

    LINUX操作系统(第2版) LINUX指令范例速查手册 JSP & SERVLET学习笔记 STRUTS 2.X...

  • 操作系统

    操作系统学习笔记 我们老师推荐的教材: 计算机操作系统教程,张尧学,史美林,清华大学出版社计算机操作系统,汤子灜等...

  • 韩顺平Linux视频教程—笔记(转)

    韩顺平Linux视频教程—笔记(全) Linux****操作系统学习 linux****的特点 优点: 1、免费的...

  • 2018-12-21

    操作系统lab4学习笔记 1.看程序 kern/mpconfig.c 这里attribute aligned是对齐...

  • Python ☞ day 15

    Python学习笔记之 进程和线程 多任务的原理 现代操作系统(Windows、Mac OS X、Linux、UN...

  • 同理心训练:怎样理解愉悦与不爽

    梁宁《产品思维三十讲》笔记 情绪是底层的操作系统情绪是底层的操作系统 后天学习的东西都是理性,是把人往回拉的力量。...

  • GO——学习笔记(九):并发

    上篇:GO——学习笔记(八) 下篇:GO——学习笔记(十) 参考: https://github.com/asta...

网友评论

      本文标题:操作系统学习笔记(十)

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