个人八股文集合三、操作系统
参考
八股面经总结 - 操作系统_冰镇雪糕的博客-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、程序是如何装入内存的
个人八股文集合三、操作系统相关推荐
- 3D MAX 常见小问题集合三
3D MAX 常见小问题集合三 2010年12月05日 3D MAX 常见小问题集合三 http://sh.yuloo.com 发表时间:2009-09-21 11:36 来源:上海育路网 [b]新世 ...
- 集合【7】--- 遍历ArrayList集合三种方法
集合相关知识总结: 集合[1] - 综述与ArrayList 集合[2] - LinkedList 集合[3] - ArrayList和LinkedList区别与联系(面试题) 集合[4]- Set ...
- python文件操作和集合(三)
对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...
- 集合三人斗地主的思路
三人斗地主 集合完成 编写一个自动发牌程序,模拟三人斗地主的摸牌场景.首先要给出提示,谁首先开始摸牌,并且摸牌要和现实摸牌一样,三人循环摸牌,最后还要剩余三张底牌,同时给出地主牌,摸到地主牌的玩家拥 ...
- 2007cad多个文件窗口上部排列_【中考信息技术总复习讲义】模块三 操作系统与文件管理...
模块三 操作系统与文件管理 学习目标 1.了解操作系统的概念.功能和分类,了解操作系统的发展. 2.熟练掌握Windows桌面.窗口.菜单.对话框的组成及常用操作. 3.掌握创建桌面快捷方式的方法和控 ...
- list foreach方法_Java集合三兄弟List,Set,Map你分的清楚吗?
前言集合作为Java基础知识的核心部分,不论是在面试还是平时工作中都是经常遇见的.当然面对熟悉的List.Set.Map,面试管的提问一般也都不会从简单的问题出发了,今天就来聊下集合中的高级部分,让你 ...
- JAVA集合三:几种Set框架
参考链接: HOW2J.CN HashSet简单讲解 HashSet HashSet与C++STL中Set基本类似,具有的特点便是: 集合中元素不可重复 集合中元素顺序 ≠ 插入顺序 常用方法 功能 ...
- Rust之常用集合(三):哈希映射(Hash Map)
开发环境 Windows 10 Rust 1.66.0 VS Code 1.74.2 项目工程 这里继续沿用上次工程rust-demo 在哈希图中存储带有关联值的键 我们常见的集合中的最后一个是哈希映 ...
- java hashmap api_JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
一.Map简述 1.1.简述 public interface Map 类型参数:K - 此映射所维护的键的类型 keyV - 映射值的类型 value该集合提供键--值的映射.key不能重复,一对对 ...
最新文章
- 校园网站服务器配置参数,校园网服务器性能 配置及分布
- redis mysql 下载_redis 下载安装
- LeetCode每日一题: 缺失数字(No.268)
- C++ replace replace_if replace_copy replace_copy_if
- 牛客题霸 [ 有重复项数字的所有排列] C++题解/答案
- mysql添加约束之前不满足_MySQL:添加约束(如果不存在)
- import torch 找不到模块_Python零基础入门:关于Python模块与包的详细解读和使用...
- Project Euler Problem 92 Square digit chains
- vscode-go 插件安装
- HTML5第6章上机,第6章__HTML5的表单.ppt
- MFC教程——鸡啄米
- 网页完美内嵌多媒体,支持IE,Mozilla、Firefox、NetScape、Opera
- 计算机网络课程实验5——交换机VLAN
- 【数学期刊】世界著名数学期刊
- FreeCAD源码分析:Assembly4模块
- 博客备份工具(博主网)开发略谈
- Jmeter录制脚本,HTTP代理服务器介绍使用
- 竟可打通了Python和Excel,还能自动生成代码,这个插件绝了
- ERFNet网络的演化
- (三)Kotlin加密/解密之AES和DES