1 / 125
文档名称:

第10章系统调用.ppt

格式:ppt   页数:125
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第10章系统调用.ppt

上传人:中国课件站 2011/9/6 文件大小:0 KB

下载得到文件列表

第10章系统调用.ppt

文档介绍

文档介绍:第10章系统调用
本章对Linux系统调用的定义、基本原理、使用方法和注意事项作了概括的介绍,以便读者对Linux系统调用建立一个大致的印象。较详细地讨论了系统调用wait、waitpid和exec函数族,并通过两个实际例子来说明系统调用。
系统调用概述
所有的操作系统都提供多种服务的入口点,由此程序向内核请求服务。各种版本的Unix都提供经良好定义的有限数目的入口点,经过这些入口点进入内核,这些入口点被称为系统调用(system call)。系统调用是不能更改的一种Unix特征。
系统调用过程
系统调用过程示意图
Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态。二者在使用方式上也有相似之处。
随Linux核心还提供了一些C语言函数库,这些库对系统调用进行了一些包装和扩展,因为这些库函数与系统调用的关系非常紧密,所以习惯上把这些函数也称为系统调用。
在Linux中,:
一般来说,CPU硬件决定了进程不能访问内核所占内存空间也不能调用内核函数,这被称作"保护模式"。系统调用是这些规则的一个例外。系统调用的原理是:进程先用适当的值填充寄存器,然后调用一个特殊的指令跳转一个事先定义的内核中的一个位置(当然,这个位置是用户进程可读但是不可写的)。硬件知道一旦跳到这个位置,就不是在限制模式下运行的用户,而是作为操作系统的内核。在Intel CPU中,这个指令由中断0x80实现。
进程可以跳转到的内核位置叫做sysem_call。这个过程检查系统调用号,该号码告诉内核进程请求哪种服务。然后内核进程查看系统调用表(sys_call_table)找到所调用的内核函数入口地址。接着调用相应的函数,在返回后做一些系统检查,最后返回到进程(如果这个进程时间用尽,则返回到其他进程)。sysem_call的代码在源码/kernel/(system_call)的下一行。
实际上,很多已经被台上的实现都是靠系统调用完成的,所以如果想对系统底层的原理作深入的了解,掌握各种系统调用是初步的要求。Linux下编程高手,其标志之一也是能对各种系统调用有透彻的了解。
在很多情况下,系统调用是实现编程想法的简洁有效的途径,所以应该尽量多掌握一些系统调用,这会对程序设计过程带来意想不到的帮助。
系统调用的进入
系统调用的进入可分为“用户程序调用系统调用总控程序(system_call)”和“系统调用总控程序调用各个服务程序”两部分;下面将分别对这两个部分进行详细说明:
(1)“用户程序调用系统调用总控程序”的实现:Linux的系统调用使用第0x80号中断向量项作为总的入口,即系统调用总控程序的入口地址system_call就挂在中断0x80上。也就是说,只要用户程序执行0x80中断( int 0x80 ),就可实现“用户程序系统调用总控程序”的进入。只是0x80中断的执行语句int 0x80 被封装在标准C库中,用户程序只需用标准系统调用函数就可以了,而不需要在用户程序中直接写0x80中断的执行语句int 0x80。中断的进入的详细过程可参见第3章“中断和中断处理”。
(2在系统调用总控程序中,通过语句“call * SYMBOL_NAME(sys_call_table)(,%eax,4)”来调用各个服务程序(SYMBOL_NAME是定义在/include/linux/:#define SYMBOL_NAME_LABEL(X) X),可以忽略)。当系统调用总控程序执行到此语句时,eax中的内容即是相应系统调用的编号,此编号即相应服务程序在系统调用向量表sys_call_table中的编号(系统调用的编号的有关说明在/linux/include/asm/)。又因为系统调用向量表sys_call_table每项占4个字节,所以由%eax 乘上4形成偏移地址,而sys_call_table则为基址;基址加上偏移所指向的内容就是相应系统调用服务程序的入口地址。所以此call语句就相当于直接调用对应的系统调用服务程序。

最近更新

2024年成都纺织高等专科学校单招职业倾向性测.. 42页

2024年扬州中瑞酒店职业学院单招职业技能考试.. 40页

2024年抚州职业技术学院单招职业适应性测试模.. 42页

2024年日照航海工程职业学院单招职业倾向性测.. 39页

2024年昭通卫生职业学院单招职业技能考试模拟.. 39页

2024年曲阜远东职业技术学院单招职业技能考试.. 40页

2024年株洲师范高等专科学校单招职业倾向性测.. 40页

2024年梅河口康美职业技术学院单招职业技能测.. 41页

2024年武夷山职业学院单招职业技能考试模拟测.. 41页

2024年永州师范高等专科学校单招职业适应性测.. 40页

2024年江苏省南京市单招职业适应性测试题库附.. 39页

2024年江西制造职业技术学院单招职业技能测试.. 40页

2024年江西工业贸易职业技术学院单招职业适应.. 41页

2024年江西建设职业技术学院单招职业适应性考.. 40页

2024年江西省南昌市单招职业倾向性测试题库新.. 41页

2024年江西科技职业学院单招综合素质考试模拟.. 42页

2024年江西青年职业学院单招职业倾向性考试题.. 40页

2024年沈阳职业技术学院单招职业技能考试模拟.. 39页

2024年河北东方学院单招职业技能考试题库附答.. 40页

2024年河北女子职业技术学院单招职业适应性测.. 39页

2024年河北省秦皇岛市单招职业适应性测试模拟.. 40页

2024年河南女子职业学院单招职业适应性测试模.. 40页

2024年河南建筑职业技术学院单招职业技能测试.. 39页

2024年河南测绘职业学院单招职业技能考试题库.. 42页

2025年广州卫生职业技术学院单招职业技能测试.. 64页

美团代运营业务委托合同 6页

九年级家长会课件PPT下载(初三2班) 25页

山东科技版小学英语五年级下册词汇表带音标 4页

年产3000万片硝苯地平缓释片车间设计 40页

DB61∕T 926-2014 火灾高危单位消防安全管理与.. 45页