当前位置:  技术问答>linux和unix

一个关于操作系统的长久的困惑!

    来源: 互联网  发布时间:2015-02-18

    本文导语:  我对操作系统一直以来有一个困惑: 对于单任务的DOS,应用程序一旦运行,指令指针就指向了应用程序,直到 程序退出,ret,程序主动把指令指针交回到DOS。如果应用程序发生死锁, 则系统崩溃。这是毫无疑问的。 那...

我对操作系统一直以来有一个困惑:
对于单任务的DOS,应用程序一旦运行,指令指针就指向了应用程序,直到
程序退出,ret,程序主动把指令指针交回到DOS。如果应用程序发生死锁,
则系统崩溃。这是毫无疑问的。
那么在多任务操作系统的情况下,当一个进程运行完自己的时间片以后,系统
内核是如何使指令指针回到自己呢?
这个问题我和周围的很多人都探讨过,但没有人能拿出一个大家都能信服的说法,
有的说“多任务操作系统并没有象dos那样把cpu真正的交给应用程序,而是由内核读取
到应用程序的指令以后代替它执行同样的指令而已,就象一个虚拟机”
大家群起攻之:这样效率太低了吧?
还有人说“大概编译器在每个应用程序里面都插入了定期交回指针的系统调用吧”
这个说法更不能另人信服
最后有人说,把minix源代码拿来读懂就明白真相了,大家全部晕倒!

不知道这里的大虾们对这个问题有什么看法?

|
操作系统运行在保护模式时,会设定一个任务切换的时间片, 每当时间片内的时间用完时, 硬件会产生一个中断, 转入操作系统核心代码. 此时操作系统可以调用调度程序决定下一步运行的程序. 注意: 时间片设定后, 中断是由硬件产生的.

|
很简单啊,系统运行在保护模式中,任何系统调用和外部中断都会使运行进入核心态。进程时间片只有核心态代码才能看到,如果发现时间片用完,核心代码调度其它进程即可。

|
up,高手过照!继续!!!!

|
gz

    
 
 

您可能感兴趣的文章:

  • mount命令(linux操作系统)挂载卸载文件系统(cifs,光驱,nfs等)方法介绍
  • 谁有操作系统PV操作的例子???谁有操作系统PV操作的例子???谢谢!!
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • windows 系统是否是多用户操作系统,如何理解“多用户操作系统”的“多用户”?
  • Linux下u盘文件系统相关操作
  • 正在学操作系统原理,做操作系统方面的实验用那种工具较好?
  • windows7操作系统介绍及各种使用技巧总结
  • linux 怎么也能用鼠标操作?? 我的系统是Ubuntu ,不是说linux都用代码操作么?? iis7站长之家
  • linux 操作系统下ps命令介绍
  • java执行操作系统命令的问题:如何判断多个操作系统?
  • Linux操作系统和Hurd操作系统
  • 怎样在装有红帽操作系统的机子进行格式化,重新装Windows操作系统?
  • 请问各位,我想学习linux,是装linux操作系统还是在虚拟机下装操作系统呢?那种好点啊
  • 可不可以这样认为!c语言是一道唯一指向操作系统的语言,精通了它,就了解了操作系统?
  • 已安装了Windows操作系统,还想安装Linux。却还想在开机选择操作系统时由Windows引导,请问如何操作。在线等待
  • windows操作系统做服务器,客户端是unix操作系统,如何配置unix才能上网
  • ARM系列开发板是不是一定要用LINUX操作系统。windows操作系统可以吗?
  • 在window 的操作系统里,应该有个软件可以实现,安装一个虚拟的linux操作系统
  • 32位操作系统和64位操作系统字符存贮的区别?急
  • 请问netware 是不是操作系统, 为什么csdn 的操作系统栏里面没有设置它的。
  • itron与rtlinux实时操作系统各自的优点与缺点。我现在有一个项目。想权衡综合考虑用那一个操作系统。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Stacks(堆栈) 成员 操作:比较和分配堆栈
  • 什么样的操作最耗费服务器的IO操作?
  • C++ Strings(字符串) 成员 Operators:操作符,用于字符串比较和赋值
  • 请问命令行操作下怎么改Linux操作系统的日期和时间?
  • C++ I/O 成员 flags():操作flags
  • 基于linux操作系统之上操作LCD问题,急???
  • C++ I/O 成员 width():操作域宽度
  • 哪位大侠知道Linux里的有名管道传送数据快不快?有名管道操作的过程是否有读写硬盘的操作?
  • c#对象中两种copy操作:深拷贝(Deep Copy)与浅拷贝(Shallow Copy)
  • 如何在一个用户对application操作时防止别的用户对它操作?(好难啊)
  • Xcode介绍及创建工程和工程依赖操作步骤
  • 1哪位大侠知道Linux里的有名管道传送数据快不快?有名管道操作的过程是否有读写硬盘的操作?
  • MyEclipse如何查看和设置文件编码格式相关操作
  • C#操作txt文件,进行清空添加操作的小例子
  • Html checkbox标签如何设置默认选中以及用js操作checkbox代码示例
  • linux 的命令操作和 windows的命令提示行有什么不同呢?? 为什么windows一般都不用命令提示行操作呢??
  • c/c++ 操作符优先级参考
  • linux 怎么也能用鼠标操作?? 我的系统是Ubuntu ,不是说linux都用代码操作么??
  • javascript操作html复选框checkbox:如何判断复选框是否被选中
  • 请问我本机操作系统是2K,如何远程操作RedHat9?
  • Plesk 中操作和设置 Docker 容器
  • 关于设备操作的一点迷惑:计算机如何知道驱动程序要操作的设备正好是指定的设备?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3