高级操作系统2012-2013复习提要答案.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级操作系统2012-2013复习提要答案

本科操作系统的基本知识 1、unix/Linux 的发展历程, 内核内核版本号 2、微内核和单一内核 在微内核中,大部分内核都作为单独的进程在特权状态下运行,他们通过消息传递进行 通讯。在典型情况下,每个概念模块都有一个进程。因此,假如在设计中有一个系统调用模 块,那么就必然有一个相应的进程来接收系统调用,并和能够执行系统调用的其他进程 (或 模块)通讯以完成所需任务。 单内核是个很大的进程。他的内部又能够被分为若干模块 (或是层次或其他)。但是在运 行的时候,他是个单独的二进制大映象。其模块间的通讯是通过直接调用其他模块中的函数 实现的,而不是消息传递。 3、虚拟机的概念 VMMM/HOST VM 虚拟机 (VirtualMachine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完 全隔离环境中的完整计算机系统。 4、fork和exec的语义 fork在英文中是分叉的意思。fork()函数通过系统调用创建一个与原来进程几乎完全 相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同, 两个进程也可以做不同的事。一个进程调用fork()函数后,系统先给新的进程分配资源。在 fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进 程。在子进程中,fork函数返回0,在父进程中,fork返回新创建子进程的进程ID。 一个进程一旦调用exec类函数,它本身就死亡了,系统把代码段替换成新的程序的代 码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是 进程号,也就是说,对系统而言,还是同一个进程,不过已经是另一个程序了。。(不过exec 类函数中有的还允许继承环境变量之类的信息。) 5、fork与vfork 的区别 copy on write技术 fork():子进程拷贝父进程的数据段,代码段,vfork():子进程与父进程共享数据段; fork()父子进程的执行次序不确定,vfork 保证子进程先运行,在调用exec 或exit 之前与 父进程数据是共享的,在它调用exec或exit 之后父进程才可能被调度运行。如果在调用这 两个函数之前子进程依赖于父进程的进一步动作,则会导致死锁。 copy on write技术:写时拷贝。 在复制一个对象的时候并不是真正的把原先的对象复制到内存的另外一个位置上,而是 在新对象的内存映射表中设置一个指针,指向源对象的位置,并把那块内存的Copy-On-Write 位设置为1. 这样,在对新的对象执行读操作的时候,内存数据不发生任何变动,直接执行读操作; 而在对新的对象执行写操作时,将真正的对象复制到新的内存地址中,并修改新对象的内存 映射表指向这个新的位置,并在新的内存位置上执行写操作 6、Linux 最早创建的两个进程是什么 (作用)? pcb task? 7、Linux 的进程/线程模型与传统做法的区别,了解linux的内核线程 在现代操作系统中,进程支持多线程。进程是资源管理的最小单元;而线程是程序执行 的最小单元。一个进程的组成实体可以分为两大部分:线程集合和资源集合。进程中的线程 是动态的对象;代表了进程指令的执行。资源,包括地址空间、打开的文件、用户信息等等, 由进程内的线程共享。线程有自己的私有数据:程序计数器,栈空间以及寄存器。 传统进程的缺点:现实中有很多需要并发处理的任务,如数据库的服务器端、网络服务 器、大容量计算等。一个任务是一个进程,传统的UNIX进程是单线程 (执行流)的,单线程 意味着程序必须是顺序执行,单个任务不能并发;既在一个时刻只能运行在一个处理器上, 因此不能充分利用多处理器框架的计算机。如果采用多进程的方法,即把一个任务用多个进 程解决,则有如下问题:a.fork一个子进程的消耗是很大的,fork是一个昂贵的系统调用, 即使使用现代的写时复制(copy-on-write)技术。b. 各个进程拥有自己独立的地址空间,进 程间的协作需要复杂的IPC技术,如消息传递和共享内存等。 内核线程:用户态线程和内核态线程;主要的区分就是 “谁来管理”线程,用户态是用 户管理,内核态是内核管理 (但肯定要提供一些API,例如创建)。 简单对比两者优劣势: 1)可移植性:因为ULT完全在用户态实现线程,因此也就和具体的内核没有什么关系, 可移植性方面ULT略胜一筹; 2)可扩展性:ULT是由用户控制的,因此扩展也就容易;相反,KLT扩展就很不容易, 基本上只能受制于

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档