网站加入谷歌地图导航,网站建设分金手指专业七,wordpress 作者信息,网站用的服务器多少钱1.处理器的运行模式
目态
也叫用户态#xff0c;
执行非特权指令#xff1a;不能直接访问系统中的软硬件资源#xff0c;仅仅可以访问用户地址空间。
用户应用程序运行在目态。
管态
也叫内核态#xff0c;
可执行除访管指令外的任意指令#xff0c;包括特权指令
执行非特权指令不能直接访问系统中的软硬件资源仅仅可以访问用户地址空间。
用户应用程序运行在目态。
管态
也叫内核态
可执行除访管指令外的任意指令包括特权指令 ①I/O ②关中断 ③内存清零 ④存取用于内存保护的寄存器 ⑤送PSW中的值到寄存器
操作系统运行在内核态。
切换
用户态使用“访管”指令由硬件来完成目态到管态的切换。
2.系统调用
功能 凡是与资源有关的操作都必须通过系统调用的方式向操作系统提出服务请求并由操作系统代为完成之。
设备管理
文件管理
进程管理
进程通信
内存管理
调用过程
系统调用的具体流程
1. 用户程序发出系统调用请求
触发条件用户程序需要执行某个特权操作如读写文件、分配内存、创建进程等。调用API用户程序通过调用操作系统提供的系统调用接口通常是高级语言库函数如open()、read()、write()等。准备参数系统调用前用户程序将系统调用所需的参数如文件路径、读写缓冲区等准备好。
2. 系统调用库函数封装
库函数作用大多数系统调用都有一个封装库函数负责将系统调用请求从用户空间传递到内核空间。库函数执行库函数会执行一些必要的处理如检查参数是否合法然后通过一个特殊的指令如syscall或int 0x80触发系统调用。
3. 触发陷入指令系统调用中断
陷入指令系统调用通过特定的 CPU 指令如syscall或int 0x80产生一个软中断这个软中断是一个陷入指令trap instruction会使处理器从用户模式切换到内核模式。模式切换陷入指令触发后CPU从用户模式切换到内核模式此时CPU具有更高的特权可以访问硬件和内核数据。
4. 保存上下文
用户态信息保存切换到内核模式后操作系统首先会保存用户程序的运行状态如寄存器的值、程序计数器等以便系统调用执行完后可以恢复。 PCPSW硬件来保存也即隐指令寄存器的值操作系统负责来保存 保护机制保存用户态的上下文信息是为了防止系统调用过程中用户态的数据丢失并确保切换回来时程序能够继续正常运行。
5. 转入内核态
中断向量CPU根据系统调用的中断向量表找到相应的系统调用处理函数通常对应一个唯一的系统调用号。系统调用号每个系统调用都有一个唯一的编号系统调用号用于指示当前请求的具体服务类型。内核通过这个编号来决定调用哪个系统调用处理程序。
6. 内核态处理系统调用
执行系统调用函数内核根据系统调用号和传递的参数调用对应的内核函数执行相应的系统功能如文件操作、进程管理、内存分配等。特权操作由于操作系统处于内核模式具有对硬件和系统资源的访问权限因此可以执行诸如读写磁盘、管理内存等特权操作。
7. 返回结果
返回值处理内核在处理完系统调用后将结果如文件描述符、读写结果、状态信息等准备好。结果会保存在寄存器中通常是某个固定的寄存器如EAX、RAX以返回给用户程序。
8. 恢复上下文并返回用户态
恢复用户态信息在返回用户态之前内核会恢复先前保存的用户程序的上下文包括寄存器的值、程序计数器等。切换回用户模式CPU通过特殊指令将系统从内核模式切换回用户模式。
9. 用户程序继续执行
系统调用完成CPU恢复到用户模式后用户程序继续从暂停的位置开始执行获取系统调用返回的结果。