操作系统高频考点(一)

1、进程与线程的区别


  • 进程是资源分配的最小单位,线程是CPU调度的基本单位。
  • 进程拥有独立的地址空间,线程没有独立的地址空间,但拥有独立的堆栈和局部变量。
  • 在多进程和多线程中,多进程比多线程更健状。由于进程拥有独立的地址空间,所以一个进程异常结束时,不会影响到其它进程;线程没有独立的地址空间,当线程异常结束时,可能会影响到其它线程。
  • 创建进程的开销比创建线程的开销大;进程上下文切换的开销比线程上下文切换开销大。

2、简述进程内存分区


alt

  • 内核空间:存放操作系统代码和数据
  • 栈区:存放局部变量、函数的参数值等,该区域由操作系统控制
  • 动态库/共享内存映射区:可执行程序运行依赖的动态库加载在该区域;mmap映射的共享内存也在该区域
  • 堆区:提供给程序员自行操作的内存区域,malloc/free和new/delete操作的就是这块内存
  • 可读写数据区

(1).bss段:存放未初始化的全局变量、static修饰的局部变量等

(2).data段:存放初始化的全局变量、static修饰的局部变量等

  • 只读数据区:存放二进制代码、一些const修饰变量、字符串常量等

3、内存碎片


  • 如何产生内存碎片

程序员在程序中用malloc向虚拟内存的堆空间动态申请内存,用free释放内存。如果程序存在大量的malloc/free操作且长时间运行,则虚拟内存的堆空间很容易产生内存碎片

  • 什么是内存碎片

内存碎片是指堆空间剩余很多离散的空闲内存,但不能满足malloc的分配请求。内存碎片分为外部碎片和内部碎片。下图描述了部分堆空间的内存分配情况,将堆空间以4字节为单位划分为许多分配块,白色块表示空闲内存,浅蓝色和深蓝色块表示已分配的内存。假设内存分配的最小单位是

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式软件面试笔记 文章被收录于专栏

该笔记涵盖嵌入式软件工程师技术面试中的知识点,归纳总结为:C/C++、操作系统、计算机网络、数据结构与算法、linux常用命令等章节。

全部评论
1 进程和线程的区别,线程是共享堆空间的吧
点赞 回复 分享
发布于 2023-08-01 19:49 广东
已订阅,期待更新
点赞 回复 分享
发布于 2023-02-06 19:50 广东
已订阅,期待更新
点赞 回复 分享
发布于 2023-02-06 16:15 广东

相关推荐

金山办公2025届校园招聘春招正式启动!金山办公2025届校园招聘春招正式启动!金山办公2025届校园招聘春招正式启动!#春招分享c++、前端、服务端(后端)等岗位hc超多,薪资可观,硕士18k起步(珠海、武汉),本科14k起步(珠海、武汉),14-16薪(正常绩效有2个月工资的年终奖)。不卡学历,双非本科即可。晋升前景:新人培训机制完善,试用期3个月,和正式工作工资一样,由公司高级架构师亲自授课,纯技术培训,不用参与公司业务,技术提升迅速,表现好直接选入架构师培养班,职级+1(p3-> p4),涨工资。此外每年一次评级机会,新人入职第一年基本都会升一级。1、福利:应届生也有年终奖(正常表现1个月工资起步),公积金拉满(单边12%,双边24%),双休,每年一次公费旅行(国内外都可去)。 聚餐多多,每个部门都会自己买零食,随便吃 。2、上班时间:早9晚6(弹性打卡,早上迟到一下没事),真双休(周末从来不加班)欢迎大家投递!!!金九银十,接下来将迎来简历投递高峰期,大家投递务必填好内推信息!!内推可以免笔试,还有可能获得面试复活的机会!!************************************************一定要填上内推码!!一定要填上内推码!!一定要填上内推码!!内推码:NTA79r2内推码:NTA79r2内推码:NTA79r2************************************************投递的uu可以私信一下你的投递信息,或者评论留一下姓名缩写加岗位(如XHS+产品经理),我会尽力帮忙跟进。私戳还可以实时进度查询还附有面试建议哦,心动的同学们快来吧!#内推# 金山#校招# 春招#校招# 金山 #春招# 实习生内推 ##春# #金山# #求职季# #牛客AI配图神器#
点赞 评论 收藏
分享
评论
6
10
分享

创作者周榜

更多
牛客网
牛客企业服务