参考

八股面经总结 - 操作系统_冰镇雪糕的博客-CSDN博客

进程间通信(IPC)介绍_火锅娃的博客-CSDN博客_ipc进程间通信

一、常问的问题

1、进程地址空间里面有什么东西?(C++内存空间模型)

无图详解:

C++内存模型 详解_帅B猪的博客-CSDN博客_c++内存模型

有图详解:

进程地址空间详解_小赵小赵福星高照~的博客-CSDN博客_进程地址空间

#include<stdio.h>
#include<stdlib.h>int un_init_val;//未初始化
int init_val = 100;//初始化using namespace std;int main(int argc, char* argv[], char* env[])
{const char* pchar = "thank you.";char* qchar = (char*)malloc(10);printf(".text:\t\t\t\t%p\n", main);//代码区起始地址printf(".data:const char:\t\t%p\n", pchar);//字符常量区printf(".data:init\t\t\t%p\n", &init_val);//全局已初始化printf(".bss:un_init\t\t\t%p\n", &un_init_val);//全局未初始化printf(".heap:\t\t\t\t%p\n", qchar);//堆区printf(".stack:1\t\t\t%p\n", &pchar);//栈区printf(".stack:2\t\t\t%p\n", &qchar);//栈区printf(".args addr:\t\t\t%p\n", argv[0]);//命令行参数printf("env:\t\t\t%p\n", env[0]);//环境变量return 0;
}

2、什么是内存泄漏?怎么防止?有用过什么检测工具吗?

C/C++什么是内存泄露,内存泄露如何避免?_Kuany_的博客-CSDN博客_c语言内存泄漏是什么

C++内存泄漏及解决办法_Inc_Cool的博客-CSDN博客_c++内存泄漏的原因及解决办法

检测工具:

valgrind简介与使用_WuYuJun's blog的博客-CSDN博客_valgrind

3、堆和栈的区别

一文读懂堆与栈的区别_恋喵大鲤鱼的博客-CSDN博客_堆和栈的区别

4、什么是栈溢出?内存越界又是什么?

栈溢出及解决方法_—叶丶知秋的博客-CSDN博客_栈溢出

详解栈溢出_东东7_7的博客-CSDN博客_栈溢出

​​​​​​内存溢出和内存越界_盼盼编程的博客-CSDN博客_内存越界

5、进程和线程的区别

进程和线程的区别---从操作系统的前世今生进行分析_李子树_的博客-CSDN博客

进程和线程的定义、区别与联系_岩枭的博客-CSDN博客_进程和线程的区别

《操作系统》PDF:P84

6、线程的几个状态

哪些状态:

《操作系统》PDF:P87,P45

五种状态

线程、进程状态转换:

《操作系统》PDF:P45

7、多线程进程中,某个线程死掉会影响其他线程吗

多线程编程时,需要进行同步访问的数据有三种:

1、全局变量:

2、动态分配的变量:

3、函数内的局部静态变量:

这三种类型的变量都不存在于栈里面

关于多线程栈空间的若干问题_xunyn的博客-CSDN博客_多线程 栈空间.

如何调试segment fault错误_一 铭的博客-CSDN博客_segmentfault

OS / 进程中某个线程崩溃,是否会对其他线程造成影响?_Ruo_Xiao的博客-CSDN博客_线程崩溃对其他线程的影响

8、多线程第三方库(API)和C++11库的区别

API

linux 线程 1.1 — 线程开发 API_胖胖的小肥猫的博客-CSDN博客_linux 线程api

C++11:

C++11并发编程(一)——初始C++11多线程库_无鞋童鞋的博客-CSDN博客

c++11多线程库_weixin_33896726的博客-CSDN博客

9、同步异步阻塞非阻塞

同步/异步,阻塞/非阻塞概念深度解析_萧萧九宸的博客-CSDN博客_同步和异步阻塞和非阻塞

异步和非阻塞的区别_JackMa_的博客-CSDN博客_异步和非阻塞

总结:

(1)阻塞/非阻塞, 同步/异步的概念要注意讨论的上下文:

在进程通信层面, 阻塞/非阻塞, 同步/异步基本是同义词, 但是需要注意区分讨论的对象是发送方还是接收方。  发送方阻塞/非阻塞(同步/异步)和接收方的阻塞/非阻塞(同步/异步) 是互不影响的。

在 IO 系统调用层面( IO system call )层面, 非阻塞IO 系统调用 和 异步IO 系统调用存在着一定的差别, 它们都不会阻塞进程, 但是返回结果的方式和内容有所差别, 但是都属于非阻塞系统调用( non-blocing system call )

(2)非阻塞系统调用(non-blocking I/O system call 与 asynchronous I/O system call) 的存在可以用来实现线程级别的 I/O 并发, 与通过多进程实现的 I/O 并发相比可以减少内存消耗以及进程切换的开销。

10、线程同步方式有哪些

p57

同步:对多个相关进程在执行次序上进行协调,使并发执行的诸进程能够按照一定的规则(时序)访问共享系统资源,并且能够很好地合作,使程序的执行具有可再现性。

进程同步的四种方法_zxx901221的博客-CSDN博客_进程同步

进程的同步、互斥、通信的区别,进程与线程同步的区别_practicePLUS的博客-CSDN博客_进程同步

linux中实现线程同步的6种方法_morris131的博客-CSDN博客_linux线程同步

25、程序是如何装入内存的

个人八股文集合三、操作系统相关推荐

  1. 3D MAX 常见小问题集合三

    3D MAX 常见小问题集合三 2010年12月05日 3D MAX 常见小问题集合三 http://sh.yuloo.com 发表时间:2009-09-21 11:36 来源:上海育路网 [b]新世 ...

  2. 集合【7】--- 遍历ArrayList集合三种方法

    集合相关知识总结: 集合[1] - 综述与ArrayList 集合[2] - LinkedList 集合[3] - ArrayList和LinkedList区别与联系(面试题) 集合[4]- Set ...

  3. python文件操作和集合(三)

    对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...

  4. 集合三人斗地主的思路

    三人斗地主  集合完成 编写一个自动发牌程序,模拟三人斗地主的摸牌场景.首先要给出提示,谁首先开始摸牌,并且摸牌要和现实摸牌一样,三人循环摸牌,最后还要剩余三张底牌,同时给出地主牌,摸到地主牌的玩家拥 ...

  5. 2007cad多个文件窗口上部排列_【中考信息技术总复习讲义】模块三 操作系统与文件管理...

    模块三 操作系统与文件管理 学习目标 1.了解操作系统的概念.功能和分类,了解操作系统的发展. 2.熟练掌握Windows桌面.窗口.菜单.对话框的组成及常用操作. 3.掌握创建桌面快捷方式的方法和控 ...

  6. list foreach方法_Java集合三兄弟List,Set,Map你分的清楚吗?

    前言集合作为Java基础知识的核心部分,不论是在面试还是平时工作中都是经常遇见的.当然面对熟悉的List.Set.Map,面试管的提问一般也都不会从简单的问题出发了,今天就来聊下集合中的高级部分,让你 ...

  7. JAVA集合三:几种Set框架

    参考链接: HOW2J.CN HashSet简单讲解 HashSet HashSet与C++STL中Set基本类似,具有的特点便是: 集合中元素不可重复 集合中元素顺序 ≠ 插入顺序 常用方法 功能 ...

  8. Rust之常用集合(三):哈希映射(Hash Map)

    开发环境 Windows 10 Rust 1.66.0 VS Code 1.74.2 项目工程 这里继续沿用上次工程rust-demo 在哈希图中存储带有关联值的键 我们常见的集合中的最后一个是哈希映 ...

  9. java hashmap api_JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API

    一.Map简述 1.1.简述 public interface Map 类型参数:K - 此映射所维护的键的类型 keyV - 映射值的类型 value该集合提供键--值的映射.key不能重复,一对对 ...

最新文章

  1. 校园网站服务器配置参数,校园网服务器性能 配置及分布
  2. redis mysql 下载_redis 下载安装
  3. LeetCode每日一题: 缺失数字(No.268)
  4. C++ replace replace_if replace_copy replace_copy_if
  5. 牛客题霸 [ 有重复项数字的所有排列] C++题解/答案
  6. mysql添加约束之前不满足_MySQL:添加约束(如果不存在)
  7. import torch 找不到模块_Python零基础入门:关于Python模块与包的详细解读和使用...
  8. Project Euler Problem 92 Square digit chains
  9. vscode-go 插件安装
  10. HTML5第6章上机,第6章__HTML5的表单.ppt
  11. MFC教程——鸡啄米
  12. 网页完美内嵌多媒体,支持IE,Mozilla、Firefox、NetScape、Opera
  13. 计算机网络课程实验5——交换机VLAN
  14. 【数学期刊】世界著名数学期刊
  15. FreeCAD源码分析:Assembly4模块
  16. 博客备份工具(博主网)开发略谈
  17. Jmeter录制脚本,HTTP代理服务器介绍使用
  18. 竟可打通了Python和Excel,还能自动生成代码,这个插件绝了
  19. ERFNet网络的演化
  20. (三)Kotlin加密/解密之AES和DES

热门文章

  1. LSH系列2:MinHashLSH——文档(集合)相似性
  2. 电玩商家团购转化千单,小魔推应该怎么做
  3. HTTPS的链接建立、通信过程,SSL加密
  4. android surfaceview自定义拍照 绘制头像轮廓
  5. 新型基础测绘与实景三维中国建设技术文件【4】基础地理实体数据元数据
  6. as3+php+测试地址,m3u8 视频测试地址
  7. 安卓音频转码,wav格式转为mp3
  8. MATLAB中plot与line,Matlab Plot 和 Line区别
  9. 可以做不同口味寿司的机器人
  10. 12306网站订票详细攻略