【Python学习计算机知识储备】

一、计算机组成

计算机俗称电脑,包含人对计算机的终极期望,能像人脑一样去工作

1、控制器

作用:计算机指挥系统,负责控制计算机所有其它组件如何工作的
类比:控制器->人类大脑

2、运算器

作用:进行数学运算&逻辑运算

3、存储器

4、输入设备 input

5、输出设备 output

二、CPU的工作状态

1、内核态

此时计算机由操作系统进行控制,由操作系统运行程序,操作系统可以直接控制硬件

2、用户态

此时掌控计算机的是应用程序,由应用程序来运行程序,不能操作硬件。

3、两者的关系

应用程序的运行必然要操作计算机硬件,但是用户态是无法直接操作硬件的,此时会发生用户态与内核态频繁转换;

三、多线程与多核芯片

一个大块的CPU可以集成多个核,有几个核就可以看做这个计算机有几个CPU

2核4线程

2核表示有2个CPU,每个cpu有2个线程,这个时候可以说这是一个假4核的计算机

4核8线程

表示有4个真的cpu 每个cpu有2个线程,可以看做假8核的计算机。
注意假8核的计算机也比真4核的计算机性能强~

三、磁盘扇区

一个磁盘分为多个扇区,一个扇区为512字节(byte)。操作系统读磁盘时一次性读取的范围是一个block块
换算关系:1个block块=8个扇区=512*8=4096byte

四、IO 延迟(机械硬盘)

如何看一块磁盘的性能如何?需要计算它的IO延迟是多少
举个🌰

磁盘转速:7200转/分 换算成秒钟级别就是 120转/s

那转一圈花费的时间就是1/120/S=0.0083, 约等于8ms
IO延迟=平均寻道时间+平均延迟时间

平均寻道时间:机械手臂转到数据所在磁道花费的时间,受限于物理工艺水平,目前机械硬盘平均的寻道时间是5ms

平均延迟时间:磁盘在磁道内,找到对应数据所花费的时间,按照最远的距离,转一圈才能找到数据,平均下来就是转半圈才能找到数据,按照举例的磁盘转速,平均的延迟时间就是4ms。

结论

  1. 买机械硬盘,看磁盘的转速,平均延迟时间越小,磁盘的读写效率越高,但是这并不是优化程序运行时间的最高法则。当程序在网上运行的时候,影响数据存取的因素太多,想通过优化硬件提高程序运行速率是一件没有roi的行为
  2. 优化程序运行的核心法则:能从内存取数据,坚决不从硬盘取

六、操作系统启动流程

  1. 计算机通电
  2. BIOS开始运行,检测硬件:cpu 、内存、硬盘
  3. BIOS读取CMOS存储器中的参数,选择启动设备(存有操作系统代码的磁盘)
  4. 从启动设备上读取第一个扇区的内容(第一个扇区也就是MBR主引导,前446记录引导信息,后64位记录分区信息,最后2个为标志位)
  5. 根据分区信息读入bootloader启动装载模块->启动操作系统
  6. 操作系统成功启动->询问BIOS,获得配置信息。对于每种设备,操作系统都会先检查对应的驱动程序是否存在,如果没有,操作系统会提示用户正确安装对应的驱动程序。收到全部的设备驱动程序,操作系统就会将他们调入内核。此时操作系统也就真正接管了计算机,可以操作计算机的硬件
相关推荐
北冥you鱼2 分钟前
深入解析 Go 中 sync.YAML.Unmarshal:如何将 YAML 数据填充到 Config 结构体
开发语言·算法·golang
Python私教9 分钟前
请求超时不等于失败:把写操作恢复设计成事实回读
后端·python
迷路爸爸18010 分钟前
Claude Code 核心设计学习记录
学习·microsoft·agent·智能体·multi-agent·claude code
goldbin_zhang_xu13 分钟前
我用 Go 重写了一个 OpenClaw 框架:这就是 GoClaw
开发语言·后端·golang·agent框架·goclaw·双循环机制
lingran__13 分钟前
C++ STL map 与 set 底层剖析与模拟实现万字详解|基于红黑树,复刻 SGI-STL 泛型复用架构
开发语言·c++·stl·set·map·泛型编程·sgi-stl
野生技术架构师14 分钟前
Multi-agent的新趋势,从Agent Team到Agent Swarm
开发语言·人工智能
且听风吟022016 分钟前
7.包管理工具
python
Bonnie_121517 分钟前
10-深入理解ConcurrentHashMap(JDK1.8)
java·开发语言
程序员杰哥43 分钟前
依赖于第三方接口时,如何进行测试?
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
java修仙传44 分钟前
从网页禅道到 AI 能调用的工具:我的禅道 MCP 实现思路分享
java·人工智能·python·ai应用·mcp开发