进程

1. 假设物理机内存大小为8GB,我现在系统剩余可用内存4GB。申请一个连续4GB的空间为什么一定能够申请成功?有没有可能物理内存中根本没有连续可用的4GB空间?
有可能。虚拟内存,将物理内存中的内存碎片映射到一个连续完整的地址空间。

2. 两个进程里有指向同样地址的指针,对他们求值会不会得到同样的值?什么情况下可以得到同样的值,什么情况下不可以?
指针指向的是虚拟地址。不同进程的虚拟地址没有相关性。
页表由系统生成,决定映射关系。
公用内存的情况:用户主动申请共享内存,用于进程通信;两个进程使用相同的动态链接库

3. 两个进程同时运行在一台物理机上,一个进程能否访问另一个进程的变量?通常情况是能还是不能,为什么?如果能,通过什么方法?
不能,进程之前是相互隔离的。
如果要访问另一个进程的变量,可以通过进程间的通信实现。
常用的进程间通信有socket,共享内存,消息队列等。

4. 很多程序都共享大量的动态链接库,比如基础的数学库,glibc等,启动多个进程的时候,这些库占用系统内存吗?是启动一个进程这些库也要多使用一份内存吗?为什么?
在编译的时候,将动态链接库编译进去之后,在elf文件中为留下该动态链接库的依赖关系。在程序的启动的时候,linux也只是为其分配一段线性空间,但不分配具体内存,当具体使用的时候,才分配物理内存。
如果不同进程使用相同的ddl,操作系统会把dll映射到相同的内存。

5. 当使用交换文件的时候,进程可用的内存也许比物理内存更大,因为有些数据可以被交换到磁盘上。那么此时,用户的程序需要自行读取物理磁盘吗?这个技术是怎么实现的?
在交换文件的时候,cpu会在页表上做标记已移到磁盘,在cpu访问页表时发现标记,会请求CPU把数据移到内存。
分页:等间隔,连续的

6. 我们知道,在单核处理器上,多个程序可以并发(多个进程交替运行),那么一个程序如何交出对CPU的控制权?
时间片用尽时,进程交出CPU的控制权。
进程自己调用一个系统调用。
CPU中断。

一个进程在运行纯数学计算的时候,操作系统在做什么?
什么都不做

有些操作系统能够保证一个进程一次至多连续占用50msCPU,操作系统是如何做到的?为什么能防止进程持续运行下去而其他进程无法运行?
时间片轮转算法。
所有就绪进程被放在队列里,每个进程被分配一个时间片。如果在时间片用尽时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果在时间片未用尽但进程已经结束,则CPU立刻分给下一个进程。
每个进程用完时间片或者结束后,被移至队尾。
时间片太短会导致过多进程切换,降低CPU效率,太长会影响短的交互请求的响应速度。一般为50-100ms。

7. 一个线程能不能在两个核心上运行?能不能用计算充分利用(占满)处理器的两个核心?为什么?
可以交替的用两个核心。
不可以。因为线程是CPU调度的基本单位。多个线程可以分别运行在不同的核心上。

8. 为什么要使用多线程?使用多进程和多线程的区别在于什么?各有什么优点?多线程解决了多进程的什么问题?
好处:减少IO延迟和利用多核提高效率
多进程涉及到内存、CPU及其他资源的切换,开销比线程切换大。
进程间的通信比线程通信复杂。
但进程的隔离性好,各进程间相互独立,一个进程出问题不会影响另一个进程,但线程共享资源,一个线程出问题很可能影响其他线程。并且多线程的设计更复杂,错误更难复现。
共用数据内存。

9. 为什么线程切换有开销,这个开销是什么?
上下文切换。比如A线程切换到B线程,需要进行的操作有:保存线程A的执行现场(寄存器),然后再载入B线程的执行现场。这个开销并不小。
上下文切换开销可以分为:
a. 直接开销:CPU完成切换所用的时间(保存,恢复寄存器,切换地址空间)
b. 间接开销:高速缓存,缓冲区缓存,TLB(translation lookup buffer)失效

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.内存的页面置换算法 (1)最佳置换算法(OPT)(理想置换算法):从主存中移出永远不再需要的页面;如无这样的...
    杰伦哎呦哎呦阅读 3,338评论 1 9
  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,176评论 0 23
  • 操作系统概论 操作系统的概念 操作系统是指控制和管理计算机的软硬件资源,并合理的组织调度计算机的工作和资源的分配,...
    野狗子嗷嗷嗷阅读 12,091评论 3 34
  • 一 他是你高中时的兄弟,她是你十几年的闺蜜。 你们高中毕业后去了不同的城市,见到了不同的人。 对世界的看法, 对未...
    闲话晚说阅读 312评论 7 5
  • 三原则:图原创,文原创,诗原创。 是不是在最好的年纪遇见你 又有什么关系 爱情就是时光机 会带我们穿越 到十八岁的...
    秋水饮马阅读 416评论 32 31