文章图片
文章图片
文章图片
作为一名开发人员 , 您可能会将您的技能集中在解决问题和数据结构上 。 嗯 , 毫无疑问 , 这是最重要的技能之一 。 除此之外 , 你有没有想过还有什么更重要?考虑这样一个场景:您正在执行代码 , 但您的程序运行速度太慢 。 你检查你的代码 , 你发现你的代码没有任何问题 。 这背后的原因可能是什么?
嗯 , 原因之一可能是您的操作系统 。 现在如果你需要调试你的程序 , 那么如果你不知道你的操作系统是如何工作的 , 你会怎么做 。 可能是您访问了太多文件、内存不足或交换使用率很高 。 要解决此问题 , 您肯定需要了解交换或 I/O 阻塞 。
您将如何与您的机器通信?你有没有想过为什么有些程序员更喜欢一个操作系统而不是另一个?
从以上所有对话中 , 您可能已经明白为什么学习操作系统很重要 。 作为开发人员 , 我们应该了解操作系统的重要性 。 今天在这个博客中 , 我们将讨论操作系统的一些重要概念 , 它们将有助于您作为开发人员的工作 。
进程与进程管理进程基本上被定义为一个正在执行的程序 。 该过程应按顺序执行 。 当您在文本文件中编写计算机程序并执行该程序时 , 它就成为您系统中的一个进程 。 此过程执行程序中提到的所有任务 。 一个进程主要分为四个部分:堆栈、堆、文本和数据 。
- 栈:栈负责存储函数/方法参数等临时数据 。 它返回地址和局部变量 。
- 堆:堆在运行时动态地为进程分配内存 。
- 文本:文本包括由程序计数器的值和存储在处理器寄存器中的数据表示的当前活动 。
- 数据:它包含全局和静态变量 。
2.线程的概念您可以将线程定义为通过流程代码的执行流 。 线程在程序计数器中跟踪所有接下来需要执行的指令 。 此外 , 线程包含保存当前工作变量的系统寄存器 。 在线程中 , 堆栈包含执行历史 。
线程可以与其对等线程共享代码段、数据段和打开的文件 。 当一个代码段被一个线程更改时 , 所有其他线程都会看到这一点 。 线程也称为轻量级进程 。 应用程序的性能可以通过并行性来提高 。
一个线程只属于一个进程 , 任何线程都不能存在于进程之外 。 线程一般用于实现网络服务器和网络服务器 。 主要有两种线程:
用户级线程:在这一级线程中 , 线程管理内核不知道线程的存在 。 Thread 库还维护用于创建和销毁线程的代码 。 它还包含用于在线程之间传递消息和数据的代码 。 还维护用于调度线程执行和恢复线程上下文的代码 。
内核级线程:线程级管理由内核完成 。 在应用区 , 你不会找到线程管理代码 。 它由操作系统直接支持 。
内核还维护各个线程和整个进程的上下文信息 。 调度也是在线程的基础上完成的 。 内核负责创建、调度和管理内核空间 。
3.调度【操作系统|开发人员只要会编码就完事了吗?不,他们往往忽略了这些...】在调度中 , 进程管理器负责将正在运行的进程从 CPU 中移除 , 并根据特定策略选择另一个进程 。 对于多道程序来说 , 调度是操作系统必不可少的部分 。 一次可以将多个进程加载到可执行内存中 。 该进程在加载后使用时间多路复用共享 CPU 。
在进程调度队列中 , 操作系统维护着所有的进程控制块 。 操作系统为每个进程状态维护一个单独的队列 。 处于同一执行状态的所有进程的进程控制块都维护在同一个队列中 。
主要是你的操作系统维护了以下重要的进程调度队列:
- 作业队列:负责保存系统中的所有进程
- 就绪队列:在主内存中 , 所有准备就绪并等待执行的进程都驻留在内存中 。
- 设备队列:该队列存储由于 I/O 设备不可用而被阻塞的进程
- 单片机|快2022年,从事单片机/硬件开发前景到底如何?
- 太空|太空旅游不远了?天舟货运飞船首次公开发售“船票”,有学生票吗
- 机器|激光粉末床熔合中成分和相图特征对适印性和微观结构的影响:合金系统加工图的开发和比较 (一)
- Windows|New Windows 11操作系统壁纸灵感来源,新的视角,一个新的时代
- Google|Web前端培训:为什么React在前端开发中如此流行?
- 物联网|物联网解决方案的前端开发
- 太空|中国将在太空计划中开发核能,最新反应堆动力比美国强100倍
- 操作系统|如何从一个静态库中访问当前模块的实例句柄
- 火星|马斯克SpaceX向NASA提交建造火星基地白皮书,他打算怎样开发火星
- Windows11|win11操作系统与win10:差距无法接受