概述
一、系统调用的执行过程:
1.硬件接收到信号立刻保存现场,并查找中断向量表,将CPU控制权交给系统调用总入口程序
2.对于系统调用总入口程序,亦要先保存现场,将参数保存在内核的堆栈中,然后查找系统调用库,将CPU控制权交给对应的系统调用处理程序或者内核程序
3.执行系统调用处理程序
4.恢复现场,返回用户程序.
二、什么是系统调用
大白话:就是
用户态
到内核态
的过程
在说明什么是系统通调用前;我们先熟悉下什么是内核模式,用户模式
就是为了保护设备,有些文件,OS不能让其随意的访问,所以分为内核和用户模式
内核模式:
用户程序调用系统
API
函数称为系统调用(System Call); 发生系统调用时会暂停用户程序,转而执行内核代码(内核也是程序),访问内核空间,这称为内核模式(Kernel Mode)。
涉及较底层,一般是一些修改寄存器内容的指令,常用的有:磁盘的IO操作,访问物理页内存,访问网络上的数据包等等
用户模式:
就是用户空间保存的是应用程序的代码和数据,是程序私有的,其他程序一般无法访问。当执行应用程序自己的代码时,称为用户模式(User Mode)。
系统调用的概念:
系统将内核函数进行封装成
API
通过系统调用接口呈现给用户
系统调用的过程
下面的这张图进行的详细解释:(找了半天的网图–就他最合适)
(好好揣摩)
1.当系统发起调用是,通常通过一个
陷阱(TRAP)
的特殊硬件指令,(把它理解成一个操作步骤(好理解点)) 硬件将控制转移到预先设置的OS==>预先指定的陷阱处理程序–
trap handler
, ==>与此同时,将特权级别提升到内核模式2.在内核模式下,OS完全掌握访问系统硬件的权利,比如进行IO操作,为程序赋予更多的内存等等
3.在OS完成请求服务时,通过特殊的陷阱返回指令(
return from trap
),将控制权交还给用户,该指令返回到用户模式,同时将控制权交给应用程序,回归本源!
系统调用涉及那些操作呢?
牢记一条:涉及不涉及底层
进程管理,进程通信
网络通信
文件管理,内存管理,用户管理拉等等.
后续刷题总结补充:(未完待续)
补充:
补充:
最后
以上就是友好项链为你收集整理的系统调用【简单总结】的全部内容,希望文章能够帮你解决系统调用【简单总结】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复