操作系统前置知识

news2025/1/21 9:25:16

进程

  1. 程序存储在磁盘之中,需要加载内存才能执行,包含堆空间、栈空间、全局和静态变量数据、代码,具体执行效果如下所示:
    alt
  • 所谓的进程概念就是操作系统为了执行某个程序为其分配的内存资源,该内存资源并不是连续的,操作系统会为其创建一个PCB1。就操作系统角度而言,进程是资源分配、保护和调度的基本单位。其实进程并不会指定占用哪个CPU,其并发执行的过程都是操作系统根据系统资源状态实现最优调度的。
    alt
  • fork函数将程序的代码和数据完全拷贝一份,且进程之间的数据完全隔离。
    • 进程之间的通信方式
      a. 消息队列
      b. 管道通信
      c. 信号量semophore
      d. 共享内存
      c. 套接字(socket)
  1. 并发与并行
    • 并发:多个进程共享同一个CPU,快速切换进程产生并行的错觉
    • 并行:任意两个进程之间不共享同一个CPU

线程

  1. 线程是为了解决既有进程的数据共享难、通信代价高等问题,线程之间是堆、栈、代码共享,但是数据共享就需要用户进行较为精密的控制才能实现程序如期运行,线程是CPU分配的最小单位。
  2. 相比于进程,线程更加节省资源,自适应并发与并行。

  1. 为了提高内存利用率,操作系统利用PCB进程管理块,找到程序分散存储的内存资源,包括堆、栈、代码、数据。寻找内存资源:操作系统提供了两种管理内存的基本方式,段式存储和页式存储,采用不同的方法实现对应的逻辑地址到物理地址的映射。 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/434447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】二叉树的链式结构(笔记总结)内附递归展开图(炒鸡详细)

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:数据结构 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&…

Web前端基础——盒子模型

(1)盒子模型的作用: 布局网页,摆放盒子和内容 (2)盒子模型重要组成部分: 内容区域 - width & height内边框 - padding(出现在内容与盒子边缘之间)边框线 - border外…

毕业2年,跳槽到下一个公司就25K了,厉害了···

本人本科就读于某普通院校,毕业后通过同学的原因加入软件测试这个行业,角色也从测试小白到了目前的资深工程师,从功能测试转变为测试开发,并顺利拿下了某二线城市互联网企业的Offer,年薪 30W 。 选择和努力哪个重要&a…

建模技能C位秘诀 | 装配式建筑操作技能

剪力墙结构PC构件-预制剪力墙 YUGOU SCHOOL 1、承载力计算:对一、二、三级抗震等级的装配式剪力墙结构,应进行剪力墙水平接缝的抗震受剪承载力验算。 由公式可以看出预制剪力墙水平抗剪主要是靠垂直穿过结合面的竖向抗剪钢筋以及结合面上的轴向压力&a…

RSA-2048-Encoded-Modulus

裸公钥和x509格式公钥的区别 (公钥,非证书) x509 30820122300D06092A864886F70D01010105000382010F003082010A02820101||00 || 256字节的modulus||0203010001 解析: 0203010001 tag length value 结构 ,pubExponent 010001 大于7F补 00 ?…

C++11多线程:原子操作std::automic-用于多个线程之间共享的变量。

系列文章目录 文章目录 系列文章目录前言一、std::automic二、使用步骤1.代码案例 总结 前言 原子操作std::automic的基本概念和用法。 一、std::automic std::atomic来代表原子操作,std::automic是个类模板。其实std::atomic这个东西是用来封装某个类型的值的。 …

常用 Composition API--ref函数

ref函数--处理基本类型 以前我们的ref属性用处主要用于打标识,像原生js中的id标签一样。我们可以通过这个ref函数可以实现获取input元素,并让他获取焦点触发事件 而在v3中的是ref函数 先提出一个例子,我点击一个按钮,但是页面并…

WordCount 在 MapReduce上运行详细步骤

注意:前提条件hadoop已经安装成功,并且正常启动。 1.准备好eclipse安装包,eclipse-jee-juno-linux-gtk-x86_64.tar.gz,使用SSH Secure File Transfer Client工具把安装包上传于Hadoop集群的名称节点。 2.上传Hadoop在eclipse上运…

C++缺省参数的具体使用

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【C之路】 本文来详细介绍C中的缺省参数。正文开始: 目录 一、缺省参数概念二、缺省参数分类2.1全缺省2.2半缺省 三、缺省参数…

Linux上搭建Discuz论坛

一.准备工作 1.下载php*,mariadb-server 2.上传Discuz3.5压缩包并解压 二.搭建过程 基于redhat 9 版本和Discuz3.5,php8.0,mariadb10.5演示 一.准备工作 1.下载php*,mariadb-server [rootredhat9 aaa]# yum install -y php*…

300元的蓝牙耳机什么牌子好?300内无线蓝牙耳机推荐

感受过无线的自在舒适后,越来越多的小伙伴爱上了蓝牙耳机白天出街更潇洒,目前市面上蓝牙耳机琳琅满目可选择性较多价格从几十、几百元到数千元不等然而蓝牙耳机的安全性、舒适性如何?连接稳吗?下面整理了几款300元价位的耳机分享给…

前端配置项

默认下载安装所需插件的时候会自动添加配置,但有时候可能需要自己去配,比如系统重装(重装的是C盘,系统变量会丢失,软件在其他盘符并不需要重新下载)。 前端开发涉及到需要配置变量的软件有:git…

JVM之GC日志解读

通过阅读Gc日志,我们可以了解Java虚拟机内存分配与回收策略。 内存分配与垃圾回收的参数列表 -XX:PrintGC 输出GC日志。类似:-verbose:gc -XX:PrintGCDetails 输出GC的详细日志 -XX:PrintGCTimestamps 输出GC的时间戳(以基准时间的形式&#…

如何进行帕累托分析

【面试题】有一张“学生成绩表”,包含3个字段:学号、课程、成绩。 问题:找出每门课程A类和B类的学生,判断标准是累计占比,0~60%的记为A类,60%~85%记为B类 【解题思路】 什么是二八定律? 二八定律…

Java通过显示弹奏音乐的方式来实现继承的有关方法

目录 前言 一、Music.java类 1.1运行流程(思想) 1.2代码段 二、Brass.java类 1.1运行流程(思想) 1.2代码段 三、Wind.java类 1.1运行流程(思想) 1.2代码段 四、Instrument.java类 1.1运行流程&…

世界领先的电动汽车国际标准 一 ISO 15118全系列

世界领先的电动汽车国际标准 一 ISO 15118全系列 ISO 15118 的官方名称是“道路车辆——车辆到电网的通信接口”。我可能有点偏见,因为我是该国际标准的共同作者之一,但我坚信 ISO 15118 是当今可用的最重要和面向未来的标准之一。 ISO 15118 中内置的…

C语言学习分享(第三次)------了解C语言-下

了解C语言-下 前言知识列表1. 函数1.1认识函数1.2 自己实现函数1.3 注意事项以及函数的好处 2. 数组2.1 认识数组2.2 数组的下标 3. 操作符3.1 算数操作符3.2 移位操作符和位操作符3.3 赋值操作符3.4 单目操作符3.5 关系操作符3.6 条件操作符3.7 逗号表达式 4. 常见关键字4.1 关…

开源正当时,共赢新未来 OpenHarmony开发者大会成功召开

4月19日,以“开源正当时,共赢新未来”为主题的开放原子开源基金会OpenHarmony开发者大会2023(以下简称“大会”)成功举办。 本次大会由开放原子开源基金会指导,OpenHarmony项目群工作委员会主办,华为、开鸿…

Windows逆向安全(一)之基础知识(九)

汇编比较三种循环 众所周知,在C语言可以使用可以使用三种循环,分别是:while、do…while和for 本文从汇编的角度出发,观察这三种循环的差异 范例代码 先贴出三种循环的代码,分别用这三种循环计算 0123456789&#…

【PyTorch】第三节:反向传播算法

作者🕵️‍♂️:让机器理解语言か 专栏🎇:PyTorch 描述🎨:PyTorch 是一个基于 Torch 的 Python 开源机器学习库。 寄语💓:🐾没有白走的路,每一步都算数&#…