Linux的工作机制

来源:互联网 发布:ign评分10分神作 知乎 编辑:程序博客网 时间:2024/05/21 18:45

肖宝林    SA*****440

1、操作系统的工作基础

        操作系统工作的基础是存储程序计算机,即将程序和数据不加区别的存储在计算机存储器中,程序执行时,按顺序执行,遇到跳转指令,则跳转到对应的地址,然后继续顺序执行。程序运行时的堆栈机制,使得函数调用以后,能保存下一条要执行的语句。一般都是从函数参数列表的最右边参数开始压入,调用一个函数后开辟新的函数栈,通过寄存器传送返回值。计算机的中断机制可以打破程序的顺序执行,而跳转到其他的内存地址上去执行程序。简单的说,中断就是让计算机停下正在做的事,去做其他的工作。这些就是计算机的工作基础。


2、操作系统内核的工作原理

        操作系统有用户态和核心态两种状态,分成这两种状态的原因是它们具有不同的权限。总的来说,核心态有更高的权限,可操作的更多。这是为了防止用户态的程序执行某些非法的操作。中断是用户态切换到核心态的途径之一,而系统一般采用int$80中断调用。此时将ESP、SS压入堆栈保存,函数栈将切换到内核态。CPU切入到内核态,找到当前进程的内核态,执行SALL_ALL,。由硬件自动保存寄存器SS、ESP、EFLAGS、CS、EIP的值。中断处理之后,执行swith_to宏切换进程,然后通过RESTORE_ALL恢复寄存器中的值,iret恢复SS、ESP、EFLAGS、CS、EIP的值,最后CPU又从内核态切换回用户态。

原创粉丝点击