面试整理学习专题2:操作系统(二)

简介: 并行指两个或者多个事件同一时刻发生,并发是两个或者多个事件在同一时间间隔发生;并行是在不同实体上的多个事件,并发是在同一实体上的多个事件(如单核CPU轮转时间片)

16、缓冲区溢出?危害?

缓冲区为暂时放置输入或输出资料的内存。缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量,溢出的数据覆盖在合法数据上。

危害:程序崩溃导致拒绝服务和跳转并且执行一段恶意代码。


17、分段、分页的区别?

39881bbe0b3f9e581af96488debb453e_aa642c752293495ca3db61e2ab94081d.png


18、物理地址、逻辑地址、虚拟内存的概念。

e5ce574858156442faac8dac90615821_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png


19、页面置换算法有哪些?

7e7a2da472344d941a4eee6764b08a00_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_18,color_FFFFFF,t_70,g_se,x_16.png


20、动态链接库和静态链接库的理解?

bfc0bbb0c89de9e19edf382c3da96749_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png


21、外中断和异常什么区别关系

363257b1c4d98699975efde156601d00_49f9a92b530c49329a15506ba1750e1e.png


22、一个程序从开始运行到结束的完整过程?

题目中的开始指的是手动 点击打开一个应用程序那一刻开始算起。


四个过程:预编译、编译、汇编、链接

(1)预编译:主要是处理源代码文件中的以“#”开头的预编译指令。

ba6b9573547a28e4a858b53e68a02bd2_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png


(2)编译:把预编译之后产生XXX.i或者XXX.ii文件进行一系列的词法分析、语法分析、语义分析及优化之后,生成相应的汇编代码文件。

38c3d38fdae23248323febae268c074a_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png

(3)汇编:

将汇编代码转成机器可以执行的指令(机器码文件)。汇编器的汇编过程相对于编译器来说更加简单,没有复杂的语法,也没有语义,更不需要做到指令优化,只是根据汇编指令和机器指令的对照表一一翻译过来,汇编过程有汇编器as完成。

经过汇编之后,产生目标文件(与可执行文件格式几乎一样)xxx.o(linux下),xxx.obj(windows下)。


汇编这一块可以参照:汇编语言及学习(大学相关课程)以至更好的理解机器码的执行等,汇编有专门的语言,就叫汇编语言。


(4)链接:将不同的源文件产生的目标文件进行链接,从而形成一个可以执行的程序,链接分为静态链接和动态链接。

980e76fad0280dc77275a71104e65234_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png


23、什么是用户态与内核态?

这是两种操作系统的运行状态。


内核态:处于内核态的CPU可以访问任意的数据,包括外围设备,比如网卡、硬盘等。处于内核态的CPU可以从一个程序切换到另外一个程序,并且CPU不会发生抢占情况,一般处于特权级0的状态我们称为内核态。

用户态:处于用户态的CPU只能受限的访问内存,并且不允许被访问外围设备。用户态下的CPU不允许独占,也就是说CPU能够被其他程序获取。。

为什么要有用户态和内核态。

答:计算机有一些比较危险的操作,设置闹钟、内存清理等等,都需要特定的状态,也就是内核态下完成,如果随意的进行操作,那么很容易造成系统崩溃或者不可挽回的灾难。


24、用户态和内核态如何进行切换的?


46072f84b32e05afcf72a004a7ec41a6_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png

ae83696195d0223f06226b9617193d8b_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_16,color_FFFFFF,t_70,g_se,x_16.png

ae83696195d0223f06226b9617193d8b_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_16,color_FFFFFF,t_70,g_se,x_16.png

25、进程终止的方式?

由于以下条件进行触发:

1、正常退出。

2、错误退出。

3、严重错误(非自愿)

4、被其他进程杀死(非自愿)

5e4ec61e85ec7115f5af1c8880c6d63d_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png


26、守护进程、僵尸进程、孤儿进程等?

0b873e3afb2070ae3d00f0fd25cc94b5_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png

9bc8ff2172e82130c7d2765935287ed1_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png


27、如何避免僵尸进程

ccea0092e4797b0b74d1e1e3c5b0df13_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png


28、介绍几种典型的锁?

29f4ea71195c40999c34bd11e47cc306_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png


29、常见的内存分配错误

25f2271f5cd426236cb64af81b889502_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_18,color_FFFFFF,t_70,g_se,x_16.png


30、内存交换中被换出的进程保存在哪里?

保存在磁盘中,也就是外存中。

ea3de2c12cb492a83cb7c311d4d93b75_6d7ce21ab78a4e13b2da08d9a8989f10.png


31、原子操作如何实现的?

45973a1cf7d6b809e76bfc92c7b8572f_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_18,color_FFFFFF,t_70,g_se,x_16.png

98b03b825b062baf85683cbca383fbaf_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_16,color_FFFFFF,t_70,g_se,x_16.png

32、抖动说一下?

也叫颠簸现象。

e5887b1a007f6d3ed4ce4c9d48f48c93_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_17,color_FFFFFF,t_70,g_se,x_16.png

相关文章
|
2月前
|
机器学习/深度学习 Dart 前端开发
移动应用与系统:构建现代数字生态的基石在当今这个高度数字化的社会中,移动应用与操作系统已成为我们日常生活不可或缺的一部分。它们不仅改变了我们的沟通方式,还重塑了我们的工作、学习和娱乐模式。本文将深入探讨移动应用开发的基础、移动操作系统的功能以及这两者如何共同塑造了我们的数字世界。
随着智能手机和平板电脑的普及,移动应用与系统的重要性日益凸显。它们不仅为用户提供了便捷的服务和丰富的功能,还为开发者提供了广阔的创新平台。本文将介绍移动应用开发的基本概念、技术栈以及最佳实践,并探讨主流移动操作系统的特点和发展趋势。通过分析移动应用与系统的相互作用,我们可以更好地理解它们在现代社会中的重要地位。
|
1月前
|
算法 前端开发 Java
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
这篇文章总结了单链表的常见面试题,并提供了详细的问题分析、思路分析以及Java代码实现,包括求单链表中有效节点的个数、查找单链表中的倒数第k个节点、单链表的反转以及从尾到头打印单链表等题目。
31 1
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
|
5月前
|
存储 调度 C++
【操作系统】进程与线程的区别及总结(非常非常重要,面试必考题,其它文章可以不看,但这篇文章最后的总结你必须要看,满满的全是干货......)
【操作系统】进程与线程的区别及总结(非常非常重要,面试必考题,其它文章可以不看,但这篇文章最后的总结你必须要看,满满的全是干货......)
120 1
|
1月前
|
Java 应用服务中间件 程序员
JVM知识体系学习八:OOM的案例(承接上篇博文,可以作为面试中的案例)
这篇文章通过多个案例深入探讨了Java虚拟机(JVM)中的内存溢出问题,涵盖了堆内存、方法区、直接内存和栈内存溢出的原因、诊断方法和解决方案,并讨论了不同JDK版本垃圾回收器的变化。
26 4
|
1月前
|
XML 前端开发 Java
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
本文阐述了Spring、Spring Boot和Spring MVC的关系与区别,指出Spring是一个轻量级、一站式、模块化的应用程序开发框架,Spring MVC是Spring的一个子框架,专注于Web应用和网络接口开发,而Spring Boot则是对Spring的封装,用于简化Spring应用的开发。
109 0
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
|
2月前
|
网络协议 算法 数据库
|
3月前
|
缓存 网络协议 算法
这些年背过的面试题——网络和操作系统基础篇
本文是技术人面试系列网络和操作系统基础篇,面试中关于网络和操作系统基础都需要了解哪些内容?一文带你详细了解,欢迎收藏!
|
3月前
|
消息中间件 存储 缓存
面试准备-操作系统
面试准备-操作系统
|
2月前
|
运维 Ubuntu Linux
操作系统发行版特性学习
操作系统发行版特性学习
|
5月前
|
前端开发 Java C#
GitHub突破5k Star!这件事情我坚持了3年,努力打造C#/.NET/.NET Core全面的学习、工作、面试指南知识库
GitHub突破5k Star!这件事情我坚持了3年,努力打造C#/.NET/.NET Core全面的学习、工作、面试指南知识库

热门文章

最新文章