操作系统之常考面试题
操作系统之常考面试题
目录:
- 操作系统概述
- 进程的描述与控制
- 存储器管理
- 处理调度与死锁
注:在牛客上复习java摘录的,便于自己复习。
地址连接:https://www.nowcoder.com/tutorial/94/a9220944ad014f55be4015c19247af91
1. 操作系统概述
谈谈,64位和32位的区别?
参考回答:
操作系统只是硬件和应用软件中间的一个平台。32位操作系统针对的32位的CPU设计。64位操作系统针对的64位的CPU设计。谈谈,CentOS 和 Linux的关系?
参考答案:
CentOS是Linux众多得发行版本之一,linux有三大发行版本(:Slackware、debian、redhat),而Redhat有收费的商业版和免费的开源版,商业版的业内称之为RHEL系列,CentOS是来自于依照开放源代码规定而公布的源代码重新编译而成。可以用CentOS替代商业版的RHEL使用。两者的不同,CentOS不包含封闭源代码软件,是免费的。
2. 进程的描述与控制
请解释一下,LINUX下的线程,GDI类
参考回答:
LINUX实现的就是基于核心轻量级进程的”一对一”线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。GDI类为图像设备编程接口类库。
2. 进程和线程的区别是什么?(重点)
- 进程是资源分配的最小单位,线程是程序执行的最小单位。
- 开销方面:每个进程独有独立的代码和数据空间,程序之间的切换会有较大的开销;线程可以看做是轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器,线程之间切换的开销小。
- 所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)
- 内存分配:系统在运行的时候会为每个进程分配不同的内存空间;而对线程而已,除CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程之间只能共享资源。
- 包含关系:一个进程可以有多个线程,线程是进程的一部分,所以线程也被称为轻量级进程。
3. 谈一谈,系统线程数量上限是多少?
参考回答:
Linux 系统中单个进程的最大线程数有其最大的限制 PTHREAD_THREADS_MAX。
这个限制可以在/usr/include/bits/local_lim.h中查看 ,对 linuxthreads 这个值一般是 1024,对于 nptl 则没有硬性的限制,仅仅受限于系统的资源。
这个系统的资源主要就是线程的 stack 所占用的内存,用 ulimit -s 可以查看默认的线程栈大小,一般情况下,这个值是8M=8192KB。
(普通用户最大线程数为1024,root用户没有限制)
请问,如何杀死一个进程?
参考回答:
Kill pid
3. 存储器管理
你怎么理解操作系统里的内存碎片,有什么解决办法?
参考回答:
内存碎片分为:内部碎片和外部碎片。内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间;
内部碎片是处于区域内部或页面内部的存储块。占有这些区域或页面的进程并不使用这个存储块。而在进程占有这块存储块时,系统无法利用它。直到进程释放它,或进程结束时,系统才有可能利用这个存储块。
单道连续分配只有内部碎片。多道固定连续分配既有内部碎片,又有外部碎片。
外部碎片指的是还没有被分配出去(不属于任何进程),但由于太小了无法分配给申请内存空间的新进程的内存空闲区域。
外部碎片是出于任何已分配区域或页面外部的空闲存储块。这些存储块的总和可以满足当前申请的长度要求,但是由于它们的地址不连续或其他原因,使得系统无法满足当前申请。
使用伙伴系统算法。
介绍一下,什么是页式存储?
参考回答:
主存被等分成大小相等的片,称为主存块,又称为实页。
当一个用户程序装入内存时,以页面为单位进行分配。页面的大小是为2n ,通常为1KB、2KB、2n KB等
4. 处理调度与死锁
请谈一谈,系统如何提高并发性?
考察:操作系统综合性参考回答:
1、提高CPU并发计算能力
(1)多进程&多线程
(2)减少进程切换,使用线程,考虑进程绑定CPU
(3)减少使用不必要的锁,考虑无锁编程
(4)考虑进程优先级
(5)关注系统负载2、改进I/O模型
(1)DMA技术
(2)异步I/O
(3)改进多路I/O就绪通知策略,epoll
(4)Sendfile
(5)内存映射
(6)直接I/O
2. 请谈一谈,什么情况下会发生死锁?解决死锁的策略有哪些?(重点)
什么是死锁?
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。死锁的四个必要条件
互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。
请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。
不剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。
循环等待条件(Circular wait):系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。处理死锁的策略
1.死锁预防。如进程需要的所有资源,在一开始就全部申请好得到之后再开始执行。
2.死锁避免。如进程每次申请申请资源的时候,根据一定的算法(银行家算法),去看该请求可不可能造成死锁,如果可能,就不给它分配该资源。
3.死锁处理。破坏四个必要条件的其中一个,比如kill掉一个进程。
4.死锁忽略。
操作系统之常考面试题相关推荐
- 计算机网络基础常考面试题总结
计算机网络基础常考面试题总结 1.OSI,TCP/IP,五层协议的体系结构,以及各层协议 答:OSI分层 (7层):物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP分层(4层 ...
- php高中级程序员面试题,PHP 程序员面试笔试常考面试题精讲
最近假期的原因,决定在chat开了这门课,希望对你有帮助. 主要总结汇总了 PHP 面试过程中最爱问的几道面试题.这些面试题可以很好的帮助面试者准备,并让你在面试过程中很好的回答这些面试题,轻松拿下 ...
- JS 异步编程及常考面试题
JS 异步编程及常考面试题 并发(concurrency)和并行(parallelism)区别 涉及面试题:并发与并行的区别? 异步和这小节的知识点其实并不是一个概念,但是这两个名词确实是很多人都常会 ...
- JS 进阶知识点及常考面试题
JS 进阶知识点及常考面试题 手写 call.apply 及 bind 函数 涉及面试题:call.apply 及 bind 函数内部实现是怎么样的? 首先从以下几点来考虑如何实现这几个函数 不传入第 ...
- JS 基础知识点及常考面试题(一)
JS 基础知识点及常考面试题(一) 原始(Primitive)类型 涉及面试题:原始类型有哪几种?null 是对象嘛? 在 JS 中,存在着 6 种原始值,分别是: boolean null unde ...
- JS 基础知识点及常考面试题(二)
JS 基础知识点及常考面试题(二) 涉及面试题:== 和 === 有什么区别? 对于 == 来说,如果对比双方的类型不一样的话,就会进行类型转换,这也就用到了我们上一章节讲的内容. 假如我们需要对比 ...
- ES6 知识点及常考面试题
ES6 知识点及常考面试题 var.let 及 const 区别 涉及面试题:什么是提升?什么是暂时性死区?var.let 及 const 区别? 对于这个问题,我们应该先来了解提升(hoisting ...
- CSS常考面试题资料
CSS常考面试题资料 都是网上搜集的资料 链接1<50道CSS基础面试题(附答案)>中的答案真的就只是答案吗? 链接2 50道CSS基础面试题(附答案)
- 由浅入深 65个JS常考面试题
由浅入深逐个击破 JS常考面试题(上篇) 1. 介绍一下JS的基本数据类型,值是如何存储的? JavaScript一共有8种数据类型,其中有7种基本数据类型:Undefined.Null.Boolea ...
最新文章
- 安装setuptools与pip
- python多重循环导致内存不足_Python多重处理拒绝循环
- React(0.13) 定义一个动态的组件
- Dalvik Vm架构
- Java使用原子类进行多线程的 i++ 操作示例
- 鲜为人知的混沌工程,到底哪里好?
- react全局状态管理_react状态管理redux
- qt 使用插件astyle_astyle使用基础教程
- 腾讯广告的多媒体AI技术实战
- ajax是什么实现的步骤,AJAX使用步骤及实现过程
- python双目视觉三维重建代码_双目立体视觉的三维重建方法与流程
- [51单片机] 串口通讯 简单通信
- 计算机安全知识策划书,安全知识策划书
- 旋风解析磁力php,2018年免费引擎和正版旋风四核引擎棋力测试分析
- ISO14001环境管理体系认证申报要求有哪些
- linux下使用360wifi3,360 随身 WiFi3 在 Ubuntu 14.04 下的使用
- Java爬虫 爬取某招聘网站招聘信息
- u-boot的usb模块初始化
- 使用spool导出数据
- Check-N-Run: a Checkpointing System for Training Deep Learning Recommendation Models | NSDI‘ 22
热门文章
- 基于语音识别的微博签到系统
- 在Elasticsearch中查询Term Vectors词条向量信息
- 6.494 - Kindergarten Counting Game
- 什么是 Visual VM?
- CodeForces - 1476E Pattern Matching(字典树+拓扑)
- centos php imap,centos 5.5 64 php 添加imap 模块记录
- 卷积神经网络精确率不增反降_深度学习 第四门课:卷积神经网络(Convolutional Neural Networks)...
- 机器学习-降维之奇异值分解SVD算法原理及实战
- Dominant Indices(CF 1009 F)
- 最简单的基于FFMPEG的视频编码器(YUV编码为H.264)