腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
视频
沙龙
1
回答
中断上的OS例程
、
、
、
我正在阅读如何在进程映像中执行模式切换,并且我很困惑为什么进程映像有内核堆栈而不仅仅是用户堆栈?这是在发生中断时完成的。用户堆栈和内核堆栈不是做同样的事情吗?
浏览 4
提问于2016-02-06
得票数 0
回答已采纳
1
回答
中断系统调用?
、
、
、
、
嘿,伙计们,我只是想确认我是否正确理解了系统调用是如何被调用的。 因此,如果程序员需要访问内核功能,它会将系统调用号加载到寄存器中,并调用软件中断(在linux 0x80中)。 然后,NVIC(或AVIC)使处理器跳转到中断处理程序的开头,并使cpu进入管理模式。 然后,中断处理程序获取系统调用号,并跳转到处理系统调用的内核代码。 最后,程序返回到其原始状态并继续运行。
浏览 45
提问于2021-07-09
得票数 0
1
回答
Linux内核中FPU的使用
、
、
、
、
如果Linux softirq通过中断Linux内核模式运行,并且中断的任务正在使用FPU,则不允许在softirq中使用FPU。 如果中断的任务是用户模式进程,它仍然可以在softirq中使用FPU,但不能中断内核模式。 下面是讨论中的代码。 问题是,为什么会这样呢? static inline bool interrupted_kernel_fpu_idle(void) { return !__thread_has_fpu(current) && (read_cr0() & X86_CR0_TS); }
浏览 4
提问于2014-08-04
得票数 2
3
回答
切换到内核模式-特权指令
、
、
我研究了切换到内核模式的指令是特权指令的一个例子。硬件只允许在内核模式下执行特权指令。 但是,如果切换到内核模式只能在内核模式(?)中执行,那么如果系统处于用户模式,如何切换到内核模式呢?
浏览 5
提问于2018-01-15
得票数 1
回答已采纳
2
回答
如何破解资源管理器崩溃的KD(Windbg)
、
、
、
、
由于安全s/w加载到Explorer.exe中,我在Explorer.exe中看到了一次崩溃。 崩溃发生在系统关闭期间。VM连接到内核调试器。当异常发生时,我不认为内核调试器会中断。我尝试了所有的调试事件过滤器。但我没能成功。 可以建议我,为什么当有异常的时候我不能看到中断。我想进入调试器,就在异常发生的时候。当卸载perticula时,可以在内核模式中使用SXE "dllName“通知我的吗? 例外是资源管理器崩溃,“0x6ad88b5上的指令,0x0000000的内存”,不能读取“”。
浏览 4
提问于2014-01-04
得票数 0
回答已采纳
1
回答
当进程处于内核模式时,当存在上下文切换时会发生什么?
、
、
我的理解是: 当处于用户模式并发生陷阱/系统调用时,寄存器被保存到内核堆栈上,切换到内核模式,trap被处理并返回到用户模式。 当处于用户模式和定时中断停止时,再次保存寄存器,切换到内核模式,并根据调度程序调度另一个进程,现在又回到用户模式运行第二个进程。 但是,如果进程1已经处于内核模式,然后计时器中断就会发生什么呢?然后会发生什么呢?
浏览 0
提问于2018-03-05
得票数 1
1
回答
执行用于处理来自进程的系统调用的内核代码是否被视为进程的一部分?
、
、
、
、
(我主要从计算机科学的角度提出以下操作系统问题。在下面,如果我需要具体说明操作系统,我主要讲的是linux) 进程被定义为一个或多个程序的执行。 然而,我们经常区分用户程序和操作系统内核(它也包括程序)。 进程是否只执行用户程序,而不是操作系统内核中的程序? 当进程发出系统调用时,cpu将从用户模式切换到内核模式,并在内核代码中执行系统调用处理程序。系统调用处理程序的执行(作为内核代码的一部分)是进程的一部分,还是操作系统内核执行的一部分? 谢谢。
浏览 1
提问于2016-02-25
得票数 0
2
回答
操作系统中的页错误处理程序在哪个堆栈上运行?
、
我刚才问了一个类似的问题,但我可能没有正确地表达出来。因此,如果进程A正在运行,并且在内存中的4000位置造成页面错误,则会导致页面错误。执行将转移到内核。那么,页面错误处理程序将运行在哪个堆栈上?这是在内核的虚拟地址空间中吗?还是为这类中断预留了堆栈空间?
浏览 1
提问于2016-01-28
得票数 1
回答已采纳
3
回答
为什么只有内核才能切换CPU执行模式?
、
根据我在“理解Linux内核第三版”一书中所读的内容。只有内核才能将CPU执行模式从“用户模式”更改为“内核模式”,反之亦然。 每个CPU模型都提供了从用户模式切换到内核模式的特殊指令,反之亦然。程序通常在用户模式下执行,只有在请求内核提供的服务时才会切换到内核模式。当内核满足程序的请求时,它会将程序重新置于用户模式中。 内核是如何做到这一点的?怎么可能只有在这种情况下才能进行这一操作?如果我得到正确的“配方”(每个CPU模型提供的特殊指令),我能在用户空间中这样做吗?
浏览 1
提问于2019-09-03
得票数 1
1
回答
linux中的ioctl系统调用能被信号中断吗?
、
由于信号本质上是异步的,所以每当进程以内核模式或用户模式运行时,它都有可能中断进程。 例如,在Robert的系统编程中,完成了read函数,该函数检查-EINTR,并将使用剩余的字节重新启动系统调用。 ssize_t ret; while (len != 0 && (ret = read (fd, buf, len)) != 0) { if (ret == -1) { if (errno == EINTR) continue; perror ("read"); break; } len -= ret; buf
浏览 4
提问于2017-04-24
得票数 2
1
回答
用户级线程如何在堆栈级别工作?
、
、
使用KLT,每个线程都有自己的堆栈,对吗?这些细节被保存在一个不同的PCB中为每个块和不同的页表,对吗?这将如何适用于用户级线程。难道所有的线程都有不同的堆栈吗?如果是的话,它是如何实现的? 编辑:我从十多年前就发现了这个确切的问题。不幸的是,这个问题也没有得到充分的回答。
浏览 3
提问于2022-07-14
得票数 0
3
回答
陷阱处理程序到底是什么?
、
据我所知,陷阱是在特殊事件发生时发生的事情。在系统调用的情况下,程序执行陷阱指令并跳转到内核模式。然后,陷阱处理程序跳转到所需的处理程序(例如,fork、exec、open)。 当fork、exec、open等的执行完成时,OS调用return-from-trap指令,并使程序返回到用户模式。 但是陷阱处理程序到底是什么呢?(另外,如果可以的话,什么是陷阱表?)
浏览 1
提问于2018-03-01
得票数 1
回答已采纳
2
回答
操作系统如何防止程序集级代码对恶意内存的访问?
、
、
、
、
我知道操作系统为保护程序不访问其他程序内存而提供的系统调用。但是,只有当我使用了OS提供的系统调用库时,这才会有帮助。如果我自己编写一个程序集代码,为内核模式设置CPU位,并执行一个特权指令(比如在内存中修改OS的程序段),该怎么办?操作系统能防止这种情况发生吗?没有好奇心了。如果可以提供任何好的博客或书籍参考,这将是有帮助的,因为我想研究操作系统在尽可能多的细节。
浏览 1
提问于2016-12-10
得票数 1
回答已采纳
1
回答
当进程被终止(*nix)时,系统调用会发生什么情况?
、
、
、
、
有一个程序可以进行各种系统调用,其中一些做IO,另一些不做;让我们举几个例子: 日复一日 分叉 写 朗读 伊奥克特 当进程执行系统调用时,操作系统内核(Linux 2+/FreeBSD7 7+/OSX)会发生什么?特别是:当进程即将结束时,每个系统调用都知道如何清理自己吗?
浏览 2
提问于2014-03-30
得票数 2
回答已采纳
2
回答
用户如何在内核模式下运行程序?
、
、
用户可以在内核模式下运行自己的程序吗?用户是如何做到这一点的?在这个制度的保护机制中,他们要绕过哪些弱点? 我认为用户程序可以在中断向量中将模式位从用户模式切换到内核模式,然后它可以执行它想要的任何中断处理程序。我在正确的轨道上吗?
浏览 0
提问于2013-09-18
得票数 10
3
回答
如果cpu正在运行进程,那么谁在运行内核?
、
、
、
假设在一个有两个进程的环境中,一个进程被调度由内核执行,它需要一些RAM中没有的数据。因此,cpu将指示内核某些内容不可用,进程将被挂起。然后,在内核通过CPU加载第二个要执行的进程并开始调查辅助内存位置(例如虚拟内存)中的数据并获取它之后,通过交换到当前不活动的内存数据将其放回主存,并将该进程放回就绪队列中以供执行。 我们知道,计算机系统中的一切都是由CPU操纵的,如果CPU忙于连续执行进程代码,那么谁在执行内核代码来执行内核完成的任务呢?如果我能解释这个场景,请告诉我。
浏览 2
提问于2011-12-29
得票数 3
回答已采纳
1
回答
硬件中断使用哪个堆栈?
、
、
我不太理解x86_64中的中断堆栈切换机制。根据英特尔的开发人员手册,当硬件中断发生时,当前上下文将存储在中断堆栈上,供以后使用。我有以下问题: 是Linux内核中的堆栈hardirq_stack吗?如果是的话,softirq也会使用这个堆栈;那么当处理softirq时发生中断时,堆栈如何保持一致性呢?如果不使用,那么使用哪个堆栈?只将上下文的一部分保存在堆栈上(例如RSP、CS、RIP),另一部分(例如寄存器)呢?
浏览 4
提问于2021-10-29
得票数 2
1
回答
是什么阻止用户应用程序“劫持”到内核模式?
、
根据我的理解。内核模式是一种硬件特性。例如。它可以通过寄存器(value1 ->内核模式,value2 ->用户模式)进行设置。 当内核加载并运行用户应用程序时,用户应用程序应该通过系统调用与内核通信以执行特权操作,在此过程中将发生中断,执行将切换到内核模式,并执行特权操作。 我的问题是: 防止恶意用户应用程序设置“模式”注册并进入内核模式(ex )的机制是什么?( x86)?只有内核才能设置这个寄存器,这是有意义的,我想知道更多关于这是如何执行的细节。
浏览 5
提问于2021-07-03
得票数 1
回答已采纳
1
回答
抢占核与物理地址扩展
、
有谁能告诉我,为什么在一个抢占式内核上,PAE不能工作?这道题是考试题,但我不知道为什么它不起作用。
浏览 0
提问于2011-06-20
得票数 3
回答已采纳
1
回答
x86_64的structure thread_struct中没有ip,那么内核如何在新的进程中切换到正确的ip?
、
x86_64的structure thread_struct中没有ip,那么function context_switch如何切换到新进程的正确ip?
浏览 0
提问于2013-03-11
得票数 3
1
回答
ARM上的内核入口点
、
、
、
为了更好地理解和发现一些有趣的东西,我正在阅读ARM内核源代码。 在arch/arm/kernel/entry-armv.S内部有一个名为vector_stub的宏,它生成一小块程序集,然后为各种ARM模式生成一个跳转表。例如,有一个对vector_stub irq, IRQ_MODE, 4的调用,它将宏展开为带有标签vector_irq的主体;vector_dabt、vector_pabt、vector_und和vector_fiq也会发生同样的情况。 在每个vector_*跳转表中,正好有一个带有带有_usr后缀的标签地址的DWORD。 我想确认我的理解是准确的,请见下文。 这是否意味
浏览 0
提问于2018-05-17
得票数 1
回答已采纳
1
回答
怎样才能防止用户进程独立地使用陷阱指令?
、
系统调用的存根例程通过陷阱指令切换到内核模式。如何防止用户进程独立地使用陷阱指令切换到内核模式,然后在切换后执行恶意代码?
浏览 0
提问于2013-04-08
得票数 5
回答已采纳
2
回答
内核模式到用户模式中断禁用
我读到RFE (从异常返回)是一种特权指令,它有助于从内核模式到用户模式的转换。 由于它是一个特权指令,在执行过程中将生成一个软件中断(Trap)。 我想知道是否所有其他中断或中断启用标志在执行期间被禁用,这样内核就不会在中间被中断。软件中断期间是否禁用中断?
浏览 0
提问于2017-12-16
得票数 0
1
回答
在内核中处理中断
、
我知道中断处理是如何工作的(切换模式、保存寄存器、更改堆栈.)。但是,我很好奇,如果中断发生在我们仍然处于内核模式,而不是在用户模式下呢?
浏览 0
提问于2020-03-08
得票数 0
回答已采纳
1
回答
将CPU转换为用户模式和内核模式的组装指令?
、
、
根据我的理解,当中断被触发时,CPU将切换到内核模式,而当中断被处理时,操作系统将将CPU切换回用户模式。 现在我的问题是: 操作系统如何将CPU切换到用户模式(使用的组装指令是什么?) 是否有程序集指令将CPU切换到内核模式,还是只有在中断被触发时才会切换到内核模式?
浏览 4
提问于2017-06-15
得票数 5
1
回答
用户级线程、内核级线程和纤程
、
、
我知道纤程在线程的上下文中运行。它们只是用户级的。 我知道线程可以是用户级的,也可以是内核级的。 当您在用户级应用程序中创建线程时,它也是用户级的吗? 您可以在用户应用程序中创建内核级线程吗? 这些用户级线程也是由内核调度的吗? 在.NET中调用CreateThread时,内核是如何发挥作用的?在创建用户级线程时,CreateThread函数是否需要通过susbsystem dll到达执行程序并一直到内核?
浏览 1
提问于2012-11-13
得票数 3
回答已采纳
1
回答
基于Win操作系统的环级移位
、
有谁能告诉我Windows操作系统是如何进行权限更改的吗? 我知道用户模式代码(RL:3)将参数传递给API。 这些API调用内核代码(RL:1)。 但是现在我想知道,在安全性检查期间,这些RL3 API和RL1内核API之间是否存在一些交换的令牌。 如果我错了,请告诉我(通过一些链接或简短的描述)它是如何工作的。 请随时关闭这条线,如果它的主题,冒犯或重复。 RL=环级 请求的特权级别
浏览 0
提问于2012-02-28
得票数 0
回答已采纳
4
回答
什么是可重入内核
、
、
什么是可重入内核?
浏览 0
提问于2009-07-22
得票数 28
回答已采纳
2
回答
当切换到用户模式时,非抢占内核和抢占内核之间有什么区别?
、
、
、
、
我正在阅读“理解Linux内核,第3版”,在第5章“内核抢占”一节中,它说: 所有进程开关都由switch_to宏执行。在抢占内核和非抢占内核中,当进程完成某个内核活动线程并调用调度程序时,就会发生进程切换。但是,在非抢占内核中,除非即将切换到用户模式,否则不能替换当前进程。 我仍然看不到非抢占内核和抢占内核之间的区别,因为您需要等待当前进程切换到用户模式的任何方式。 假设有一个进程p在内核模式下运行,其时间长度过期,则调用scheduler_tick(),并设置p的NEED_RESCHED标志,但是只有当p切换到用户模式时才调用schedule() (对吗?) 那么,如果p从来没有切
浏览 1
提问于2016-10-23
得票数 5
回答已采纳
1
回答
如果内核在处理系统调用时可以休眠,那么执行如何返回到系统调用?
、
我正在阅读Robert的“”,他写道,系统调用是在进程上下文中执行的,并且能够休眠。当前指针将引用当前任务,该任务是发出系统调用的进程。 我不明白的是,如果系统调用可以休眠,执行如何返回到系统调用?如果它在进程上下文中运行,它可以被唤醒并重新调度,但是用户进程不能在内核空间中执行。内核是否在调用系统调用时创建任务/进程来执行系统调用?我知道来自用户空间的系统调用会导致一个陷阱切换到内核模式并执行相应的系统调用,但在阅读之前我假设系统调用无法休眠并被重新安排,但我理解为什么它们应该能够。
浏览 0
提问于2019-09-04
得票数 1
回答已采纳
2
回答
内核堆栈是用来干什么的?
、
、
、
、
下面是我所读到的进程A和进程B之间的上下文切换的描述。我不明白内核堆栈是用来做什么的。应该有一个每个进程内核堆栈。我正在读的描述谈到将A的寄存器保存到A的内核堆栈上,同时将A的寄存器保存到A的进程结构中,那么将寄存器保存到内核堆栈和进程结构到底有什么意义,以及为什么两者都需要? 上下文切换在概念上很简单:操作系统所要做的就是为当前正在执行的进程保存几个寄存器值(例如,放到它的内核堆栈上),并为即将执行的进程(从其内核堆栈)恢复一些值。这样,操作系统就可以确保在最终执行从陷阱返回的指令时,系统不会返回到正在运行的进程,而是重新执行另一个进程. 进程A正在运行,然后被计时器中断中断。硬件将其寄存
浏览 5
提问于2015-05-24
得票数 12
回答已采纳
1
回答
用户空间和内核空间上的进程执行
、
试图理解用户空间和内核空间之间的关系。用户空间程序使用系统调用与内核交互。如果我有一个从文件中读取数据的程序。然后执行用户空间中的二进制代码以及内核空间中的二进制代码。我们有两个进程,一个在内核上执行,另一个在用户空间上执行,还是只有一个进程同时在用户和内核上运行。
浏览 1
提问于2014-10-09
得票数 0
1
回答
Linux是如何记住其内核堆栈指针的?
、
、
、
、
我知道Linux中有两种类型的堆栈:每个用户线程的用户堆栈和内核线程的内核堆栈(只有一个进程)。更确切地说,中断过程是内核(0)和用户(3)这两种模式之间的桥梁。中断向量表允许处理器在PC寄存器中加载正确的指令地址,但是当它在内核模式下切换时,堆栈指针寄存器是如何改变的?子例程是否指示内核堆栈在其第一条指令之前的位置?或者处理器使用两个堆栈指针寄存器(我真的很怀疑)? “从中断中返回”是如何知道返回到哪里的?PCB是否保存在内核堆栈或其他地方? 请不要犹豫,纠正它 非常感谢你的帮助。
浏览 4
提问于2015-02-26
得票数 4
回答已采纳
4
回答
int 80h是否中断内核进程?
、
、
、
首先,一些背景知识,这是从书: 信号是一种单向异步通知机制.一个信号可以从内核发送到进程,从一个进程发送到另一个进程,或者从一个进程发送到它自己。 Linux内核实现了大约30个信号。 信号中断正在执行的进程,使它停止它正在做的任何事情,并立即执行预定的操作。 好,更进一步,从,我将引用以下部分: 在Intel系列微处理器上,如奔腾,int 80h是用于中断80h的汇编语言op代码。这是一个典型的基于英特尔的Unix系统(如FreeBSD )上的syscall中断.它允许应用程序程序员从Unix内核获得系统服务。 我真的不能把这种联系在我的脑子里。因此,例如,当我使用 writ
浏览 10
提问于2015-05-29
得票数 13
回答已采纳
1
回答
信号与异常与硬件中断与陷阱
、
、
、
我读了的答案,我认为我有了一个清晰的想法。但是的回答又让我困惑了。 有人能不能给我一个清晰的图片,区别信号,例外,硬件中断和陷阱? 此外,我想知道在这些块CPU抢占内核代码? 示例将很有帮助。
浏览 0
提问于2017-08-03
得票数 2
2
回答
用户模式与主管模式
、
我有几个关于类Unix机器上的用户模式和管理模式的问题。 用户模式和主管模式有何不同?我知道用户进程不能访问所有内存和硬件并执行所有指令。还有更多的内容吗? 拥有不同模式的优势是什么? 从用户模式切换到主控模式需要执行哪些步骤? 当用户程序进行系统调用时,模式必须从用户模式更改为管理模式。我在其他地方读到过,这是通过使用int x80在x86机器上实现的。那么,模式切换与中断处理有什么不同呢? 它与上下文切换有什么不同? 如何在不同架构中实施主控引擎模式? 任何答案或指示将不胜感激!
浏览 3
提问于2009-01-26
得票数 3
2
回答
信号什么时候处理?
、
、
、
、
我读到: 只有当接收进程从内核模式返回到用户模式时,才会处理信号。 但这对我来说毫无意义,, 理论上,假设进程A正在运行,并且它向进程B发送了一个信号,当进程B开始运行时,它可能永远不会以内核模式运行--那些看不到信号并处理它的进程。 但是,在现实世界中,信号几乎是即时处理的(至少从我自己的观察来看),这怎么可能,因为我看到了一个明显的矛盾?
浏览 2
提问于2021-07-24
得票数 1
回答已采纳
1
回答
陷阱指令:为什么程序计数器和处理器状态寄存器必须原子改变?
、
、
我在我的操作系统课程的前一次考试中遇到了下面的问题。 考虑一种体系结构,其中陷阱指令有两种效果:加载包含用户/内核模式位的处理器状态寄存器(PCR)的预定义值,将程序计数器( PC )的值保存到特殊的Save PC寄存器中,并将预定义的值加载到PC中。解释为什么在同一指令周期不改变PC的情况下为PCR加载一个新值是不安全的。 我知道,当内存管理关闭时,PCR将被设置为内核模式。因为PC还在用户程序中,所以不安全吗?如果是这样的话,哪里会出错呢?如果不是,为什么不安全?为什么首先更换个人电脑也是不安全的呢?
浏览 2
提问于2018-05-07
得票数 1
回答已采纳
1
回答
在不同的线程中执行的中断处理程序?
、
我想知道什么时候处理器get被中断,一个ISR (中断服务例程)被执行,它是在被中断来处理这个中断的线程的上下文中执行的,还是在它自己的线程中执行,然后返回到它在原始线程中离开的地方? 那么上下文切换实际上是在中断发生时发生的吗?
浏览 0
提问于2010-01-01
得票数 2
2
回答
内核、内核线程和用户线程的区别
、
我不确定我是否完全理解上面提到的区别,所以我想自己解释一下,如果我弄错了,你可以打断我:“内核是创建内核线程的初始代码。内核线程是由内核管理的进程。用户线程是进程的一部分。如果你有一个单线程的进程,那么整个进程本身就是一个用户线程。用户线程进行系统调用,该系统调用由属于调用用户线程的特定内核线程提供服务。因此,对于每个发出系统调用的用户线程,都会创建一个内核线程,在内核线程完成工作后,它会将控制权交还给用户线程,然后销毁内核线程。“ 这样可以吗? 谢谢! 来自德国的问候!
浏览 2
提问于2019-07-23
得票数 0
1
回答
xv6中的硬件和Sotfware在上下文切换中的保存
、
、
、
、
我正在研究xv6上下文切换到书中。我不能完全理解保存和还原的上下文部分(第8页)。 为什么有两种类型的寄存器保存/恢复发生在上下文切换协议中? 上述用户寄存器和内核寄存器之间的区别是什么? 其含义是:通过交换堆栈,内核在一个进程(被中断的进程)的上下文中输入对开关代码的调用,并在另一个进程(即将执行的进程)的上下文中返回。
浏览 1
提问于2017-04-09
得票数 1
1
回答
Windows本机应用程序是否可以访问x86软件中断(如int 19)?
、
、
、
假设我想编写一个运行在Windows本机模式下的应用程序或驱动程序(即只使用NTDLL.DLL函数,并在ntoskrnl.exe启动时运行)。 这个应用程序可以访问x86中断吗?我能写这样的代码吗? __asm { int 19 } 让它回到启动菜单上吗?还是即使在内核模式下也不允许这样做?
浏览 1
提问于2013-10-25
得票数 1
回答已采纳
5
回答
处理器如何知道指令正在进行系统调用
、
、
、
系统调用--这是一条生成中断的指令,导致操作系统获得对处理器的控制。 因此,如果正在运行的进程发出系统调用(例如,创建/终止/读取/写入等),则会生成一个中断,该中断导致内核控制处理器,然后处理器执行所需的中断处理程序例程。对,是这样? 那么谁能告诉我处理器是如何知道这条指令应该阻塞进程,进入特权模式,并带来内核代码的。 我的意思是,作为一名程序员,我只需要输入stream1=system.io.readfile( ABC )或其他东西,就可以打开并读取ABC文件。 现在是什么在监控这个进程的执行,cpu中是否有一种神奇的力量来检测这一点? 据我所知,处理器一次只能执行进程,那么监控程序在哪里
浏览 0
提问于2012-09-01
得票数 7
2
回答
跟踪C阻塞系统调用
、
我正在尝试跟踪阻止某个进程的高级函数调用。scanf就是一个这样的例子,它会阻塞终端,直到它接收到'\n‘。现在,我跟踪scanf到getc (scanf使用getc从stdin获取字符)。我的问题是,解释来自键盘的数据,从内核一直到getc返回的过程是什么?另外,scanf是如何停止终端的(计算机是空闲的,还是正在处理另一个任务)?谢谢
浏览 1
提问于2012-02-03
得票数 6
回答已采纳
4
回答
CPU从用户模式切换到内核模式:它到底是做什么的?它是如何实现这一转变的?
、
、
CPU从用户模式切换到内核模式:它到底是做什么的?它是如何实现这一转变的? 编辑: 即使它是依赖于架构的,请给我一个答案。建筑由你来决定。告诉我你知道的建筑。 我想知道所有的事情都会涉及到什么。
浏览 7
提问于2010-03-19
得票数 30
回答已采纳
2
回答
谁或如何更改处理器模式、CPU状态、CPU权限级别?
我读到有关linux设备驱动程序的文章,其中提到内核在特权模式下运行,这使其可以不受限制地访问所有硬件。如何防止用户程序在此模式下设置CPU?
浏览 4
提问于2012-04-09
得票数 5
2
回答
什么是中断线程?
、
、
(注意:这不是关于中断Java/.NET线程,而是关于内核模式中断。) 嗨, 维基百科在文章中提到了中断线程: 中断线程 几种操作系统--例如Solaris、NetBSD、Mac、WinCE和FreeBSD --使用了不同的方案,称为中断线程。设备驱动程序提供的中断处理程序只是一个高优先级线程,它运行时启用了中断,更重要的是,可能会阻塞互斥对象。这极大地简化了在内核中的锁定。此外,中断线程可能被优先级较高的中断线程抢占. ,FreeBSD (和其他人)显然使用的中断线程技术是什么?我在哪里能读到更多关于它的书呢? 提前谢谢。:)
浏览 4
提问于2010-12-29
得票数 5
3
回答
模式、地址空间和上下文
在阅读操作系统书籍时,我们经常会遇到诸如用户模式、内核模式、用户空间、内核空间、进程上下文和中断/系统上下文等术语。如何准确地定义它们?我猜它们不能互换使用吧?
浏览 10
提问于2015-09-22
得票数 0
1
回答
Linux内核如何从内核堆栈切换到中断堆栈?
、
、
、
当用户模式任务被中断时会发生什么?我知道的一个事实是,CPU通过重构TSS切换到内核模式堆栈。但是内核何时以及如何切换到IRQ堆栈呢?
浏览 0
提问于2018-12-29
得票数 1
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
【精通内核】CPU控制并发原理CPU的中断控制
数据库内核杂谈(四):执行模式
美国恶劣天气导致Linux之父家中断电断网六天:内核更新延期
Torvalds反对将UEFI安全启动绑定到内核锁定模式
微软从Chromium Edge浏览器中将IE内核模式删除
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券