Linux操作系统是如何工作的?

本文深入剖析Linux操作系统的工作原理,包括存储程序计算机概念、堆栈机制、中断机制及其在Linux中的具体应用,阐述了如何通过这些机制实现任务调度和进程管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

姓名:*轩

学号:SA12***232

实验五:Linux操作系统是如何工作的?破解操作系统的奥秘

要求:

1、操作系统工作的基础:存储程序计算机、堆栈(函数调用堆栈)机制和中断机制;

2、在操作系统工作的基础之上,请您简述操作系统(内核)是如何工作,宏观概述结合关键点的微观(CS:EIP、EBP/ESP等的变化)分析。

 

“存储程序”原理,是将根据特定问题编写的程序存放在计算机存储器中,然后按存储器中的存储程序的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序结束执行。这个原理是由美藉匈牙利科学家冯·诺依曼(J.Von Neumann)提出的,是现代计算机的理论论基础。

存储程序和程序控制原理的要点是,程序输入到计算机中,存储在内存储器中(存储原理),在运行时,控制器按地址顺序取出存放在内存储器中的指令(按地址顺序访问指令),然后分析指令,执行指令的功能,遇到转移指令时,则转移到转移地址,再按地址顺序访问指令(程序控制)。

堆栈是函数调用时把被调用的函数所需参数压入堆栈中,已实现函数的调用。调用者保存现场,将返回地址压栈,再将待传递的参数压栈,再跳转到被调用函数入口开始执行。被调用者执行完成后,清空自己的栈空间,通过返回地址跳转到调用处的下一条语句继续执行。

什 么是中断,简单地说就是CPU在忙着作自己的事情,这时候硬件(比如说键盘按了一下)触发了一个电信号,这个信号通过中断线到达中断控制器 8259A,8259A接受到这个信号,向CPU发送INT信号申请CPU来执行刚才的硬件操作,并且将中断类型号也发给CPU,此时CPU就丢下自己正 在做的事情,但不是随便丢到旁边而是保存了当前正在做的事情的相关资料,然后去处理这个申请,根据中断类型号找到它的中断向量(也就是中断程序在内存中的 地址),然后去执行这段程序(这段程序是已经写好的,在内存中),执行完后再向8259A发送一个INTA信号表示我已经处理完你刚才的申请。这个时候 CPU就可以继续做它刚才被打断做的事情了,这个时候刚才保存的相关信息就帮助CPU接着执行下面的程序,而不至于忘记自己刚才正在做什么。

linux操作系统工作原理:操作系统的cpu资源是稀有的,所以引入中断机制,当外设向cpu发出中断,通过对应的中断号,找到中断处理函数,中断处理函数保护被中断函数的用户态堆栈,(通过SAVE_ALL操作,保护ebp/espcscip),然后进入中断处理,在中断处理进入等待阶段,会调用中断处理,用switch_to进行进行调度,在中断后半部,通过RESTORE_ALL操作恢复现场,并IRET返回,中断返回后,进入用户态,继续进入上一个被中断的进程继续执行。

参考资料:存储程序 百度百科 http://baike.baidu.com/view/2083958.htm

初看Linux中断 优快云 http://blog.youkuaiyun.com/xuexingyang/article/details/7350420

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值