前言

  • 操作系统 应是程序猿需掌握的知识,但往往会被忽略
  • 今天,我将手把手带大家扫盲 操作系统 的那些必知必会!希望你们会喜欢。

目录


1. 跨进程通信方式(IPC)

注:此处给出移动端 Android的跨进程通信方式


2. 进程与线程

2.1 进程

  • 定义
    是进程实体的运行过程 & 系统进行资源分配和调度的一个独立单位

  • 作用
    使多个程序可 并发执行,以提高系统的资源利用率和吞吐量

  • 进程状态说明(前三个为基础状态)

注意 就绪、阻塞状态的区别:

  1. 就绪状态:进程缺少的资源 = 处理机,只要获得处理机资源立即执行
  2. 等待状态:指 进程缺少其他资源(除了处理机) / 等待某一事件
  • 状态转换

2.2 线程

  • 定义
    一个基本的CPU执行单元 & 程序执行流的最小单元
  1. 比进程更小的可独立运行的基本单位,可理解为:轻量级进程
  2. 组成:线程ID + 程序计数器 + 寄存器集合 + 堆栈
  3. 注:线程自己不拥有系统资源,与其他线程共享进程所拥有的全部资源。
  • 作用
    减少程序在并发执行时所付出的时空开销,提高操作系统的并发性能。

  • 状态说明
    拥有类似于进程的就绪、阻塞、运行3种基本状态,具体如下图:

2.3 二者区别


3. 死锁的必要条件、处理方式

3.1 定义

运行过程中,多个进程因争夺资源而造成的一种互相等待的僵局

若无外力作用,这些进程都将无法向前推进

3.2 原因

  1. 竞争资源:请求同一有限资源的进程数 > 可用资源数
  2. 进程推进顺序非法:请求 & 释放资源顺序不合理,如资源等待链

3.3 死锁的必要条件

3.4 死锁的处理策略

3.5 其他说明:银行算法介绍

  • 定义
    最著名的死锁避免算法

  • 算法介绍

  1. 当进程首次申请资源时,要测试该进程对资源的最大需求量
  2. 若系统现存的资源可满足它的最大需求量,则按当前的申请量分配资源;否则,推迟分配

4. 虚拟内存


5. 虚拟地址、逻辑地址、线性地址、物理地址的区别


6. 页存储、段存储、段页存储

6.1 页存储

  • 简介

  • 地址结构
    分页存储管理的逻辑地址结构如下图所示:

  • 页表

    1. 因数据存储在不同的页面中,而页面又离散的分布在内存中的不同中
    2. 为了便于在内存中找到进程的每个页面所对应的物理块,系统为每个进程建立一张页表,记录页面在内存中对应的物理块号,即 逻辑地址 & 实际存储地址之间的映射关系,以实现从页号到物理块号的映射

页表一般存放在内存中

6.2 段存储

  • 定义

将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配

  • 特点

    1. 优:可编写 & 编译、可针对不同类型的段采用不同的保护、可按段为单位共享(含 通过动态链接进行代码共享)
    2. 缺:会产生碎片

6.3 段页存储

  • 定义
    段式管理 & 页式管理方案结合而成的方案
  1. 作业的地址空间首先被分成若干个逻辑分段,每段都有自己的段号
  2. 再将每段分成若干个大小相等的页

对于主存空间也分成大小相等的页,主存的分配以页为单位。

  • 特点

    1. 优:具有段式管理 & 页式管理方案的优点
    2. 缺:由于管理软件的增加,复杂性和开销也就随之增加

7. 总结

  • 本文全面讲解了 开发的基础知识:操作系统

  • 下面我将继续讲解 编程开发的基础知识,感兴趣的同学可以继续关注carson_ho的微信公众号


请帮顶 / 评论点赞!因为你的鼓励是我写作的最大动力!

`

操作系统:手把手带你扫盲 操作系统 的那些必知必会!相关推荐

  1. 操作系统必知必会:Linux(1)常用的Shell命令

    操作系统必知必会:Linux(1)常用的Shell命令 常用的Shell命令 磁盘管理 cd df du mkdir pwd ls 文件管理 cat chmod chown cp diff file ...

  2. 《SQL必知必会》第十三课 创建高级联结表 使用不同类型的联结 使用带聚集函数的联结 使用联结时应注意的问题

    第十三课 创建高级联结表 #使用表别名的原因 #不同的联结类型以及每类联结所使用的语法 #如何与联结一起使用聚集函数 #使用联结时的注意问题 一.使用表别名 [1]前面(第七课)介绍使用别名引用被检索 ...

  3. Android 自带描边颜色渐变炫酷进度条,面试必知必会

    3. 画第三个圆角矩形作为进度条的最外层(进度层)盖在背景层之上 4. 描边层和背景层颜色可用纯色,进度层为了炫酷可用渐变色 这是实现该自带描边颜色渐变进度条的原理,也是在PS中实现该效果的步骤,同样 ...

  4. 【必知必会】手把手教你配置MySQL环境变量——图文详解

    一.先决条件 假设我们已经成功安装MySQL数据库.如果还有小伙伴不知道如何安装MySQL数据库,可以在本文下留言,留言数超20,则出一期"手把手教你安装MySQL数据库--图文详解&quo ...

  5. 统计学新手必知必会:1文带你走进数据分析!(下)

    Mykite | 作者 人人都是产品经理 | 来源 http://www.woshipm.com/data-analysis/917862.html 4 回归分析 1.什么是回归分析? 在统计学中,回 ...

  6. 什么叫工作到位?听听人民日报怎么说 | 职场--带队伍--必知必会

    如果你是下属,又或者你是老板,思考思考自己带队的方法对不对? 一.汇报工作说结果 不要告诉老板工作过程多艰辛,你多么不容易.举重若轻的人老板最喜欢,一定要把结果给老板,结果思维是第一思维. 二.请示工 ...

  7. 统计学新手必知必会:带你走进数据分析!(上)

    Mykite | 作者 人人都是产品经理 | 来源 http://www.woshipm.com/data-analysis/917862.html 我们知道,在整个产品经理的职业生涯中,如果你不想永 ...

  8. 计算机软件系统发展历史,一文带你了解操作系统发展史

    大家了解过操作系统的发展史吗?在当下这个互联网时代,计算机已经成为了人类的生活必需品,而计算机操作系统的发展历史,也就代表着计算机的发展历史.今天贤集网小编为大家详细的整理了一份关于操作系统发展史的相 ...

  9. Windows 10操作系统自带的远程桌面的使用方法

    本文主要介绍 Windows 10 操作系统自带的远程桌面的使用方法. 1 局域网(同一子网)环境 本章介绍在局域网(同一子网)环境下的两台机器,通过系统自带的远程桌面进行连接的方法. 假设某局域网中 ...

最新文章

  1. 2020-11-13size_t和int
  2. OpenGL第三方库:GLFW入门篇
  3. 3级联动 ajax java_ajax实现三级联动的基本方法
  4. 使用promise封装ajax
  5. java merge into_Oracle merge into的使用
  6. CTC 语音基础 GMM EM
  7. 【华为云技术分享】Volcano火山:容器与批量计算的碰撞
  8. http statusCode 500状态码
  9. 计算机系统内部五大部件的主要连接关系总结
  10. python123基本统计值计算_基本统计值计算
  11. java swing开发打飞机的小游戏源代码下载
  12. igm焊接机器人基本操作_焊接机器人编程与操作
  13. 读书方法(三遍读书法)
  14. ~是什么意思 在C语言中,~0代表什么
  15. 数学建模学习(93):方差分析、T检验、卡方分析(检验)
  16. w i ndows,解释计算 机Windows的学习英语(10页)-原创力文档
  17. 深入解析著名的阿里云Log4j 漏洞
  18. Java中的boolean类型
  19. 【持续更新】1999-2023年英伟达历代桌面GeForce显卡列表,GeForce显卡发布日期
  20. 基于HTML仿oppo手机商城电商项目的设计与实现6个页面

热门文章

  1. 记录新人tp5微信扫码支付
  2. shell 分割文本_shell教程(2):积木游戏之认识积木--重要的系统命令
  3. sequence-数据库-sjk
  4. 超文本标记语言是指Java_超文本标记语言(HTML)
  5. RASP | 远程Java应用的RASP调试教程
  6. 谷歌浏览器崩溃,无法搜索
  7. design pattern scard
  8. 反射课后习题及做题记录
  9. 1元体验京东云服务器
  10. 【微信小程序】微信小程序生成二维码报错errcode=41030,invalid page rid