《程序员的自我修养》笔记
第1章 引言
说明:①本书中将计算机的范围限定于PC机,更具体的讲是采用x86指令集的32位CPU的个人计算机。
1.1 CPU与外围部件的连接方式
计算机最核心的三个硬件设备是:CPU、内存、I/O控制器
早期的计算机硬件结构:
cpu的核心频率不高,跟内存频率差不多;
他们都是连接到
同一根总线
(BUS)上;为协调cpu和io设备的速度,每个设备都会有一个响应的io控制器。
后期的计算机硬件结构:
高速北桥芯片
(PCI Bridge)——协调cpu、内存和高速图形设备之间的速度差异低速南桥芯片
(ISA Bridge)——协调io(低速)设备与高速设备之间的速度差异
1.2 SMP与多核
提高CPU速度:
- 提高cpu的频率(已提高到4GHZ,达到天花板)
- 增加cpu的数量————>
SMP
对称多处理器 SMP:每个cpu在系统中所处的地位和发挥的功能是一样的,是相互对称的。
多核处理器:是SMP的简化版,只保留多个核心(与SMP几乎无差别)
1.3 软硬件与层次体系结构
系统软件:
- 平台性软件:os内核、驱动程序、运行库以及数以万计的系统工具;
- 程序开发性软件:编译器、链接器、汇编器等开发工具和开发库。
计算机软件体系结构:
1.4 操作系统
操作系统功能:
- 提供抽象的接口;
- 管理硬件资源。
基础概念:
- 多道程序、分时系统、多任务系统、进程
- CPU分配方式:抢占式、非抢占式
硬件驱动程序Device Driver:
- 可看作是os的一部分;
- 往往跟os内核内核一起运行在
特权级
; - 与os内核又有一定的
独立性
,这使得驱动程序较为灵活
。 - (可简单理解为:通过Device Driver向硬件发送命令,发送命令方式:通过读写io端口寄存器来实现)
1.5 线程
基础概念:
- 虚拟地址空间、分段、分页(局部性原理)、重定位
- 线程(轻量级进程)、进程
数据在线程之间是否私有:
线程调度中的状态:运行、就绪、等待
线程分类:
- IO密集型线程(频繁等待)
- CPU密集型线程(很少等待)
io密集型线程总是比CPU密集型线程容易得到优先级的提升
基础概念:可抢占线程、不可抢占线程
线程安全:
- 数据一致性:①原子操作;②锁
- 实现同步:锁(①互斥量;②临界区;③条件变量;④二元信号量)
- 二元信号量:最简单的锁,只有两种状态(占用、非占用),适合只能被唯一一个线程独占访问的资源
- 多元信号量(信号量):允许多个线程并发访问的资源
- 互斥量:仅允许一个线程访问,与二元信号量类似。
区别
:信号量可以被任意线程获取并释放;互斥量只能哪个线程获取,哪个线程释放 - 临界区:比互斥量更加严格的同步手段。
区别
:临界区的作用仅限于本进程,其他进程无法获取 - 条件变量:若某条件变量被唤醒,则等待该条件变量的全部线程可以一起恢复执行。
用户态多线程库的实现方式:
- 一对一:用户线程和内核线程一致
- 多对一:多个用户线程映射到一个内核线程上
- 多对多
《程序员的自我修养》笔记相关推荐
- 《信贷的逻辑与常识》笔记
序 银行信贷风险管理的反思 现状与趋势 银行贷款的质量变化与经济周期.宏观调控政策等存在很高的相关性 现在银行不良贷款的增加主要是前几年经济快速增长时企业过度投资.银行过度放贷所带来的结果. 从历史情 ...
- AI公开课:19.02.27周逵(投资人)《AI时代的投资逻辑》课堂笔记以及个人感悟
AI公开课:19.02.27周逵(投资人)<AI时代的投资逻辑>课堂笔记以及个人感悟 目录 课堂PPT图片 精彩语录 个人感悟 课堂PPT图片 精彩语录 更新中-- 文件图片已经丢失-- ...
- 人工智能入门算法逻辑回归学习笔记
逻辑回归是一个非常经典的算法,其中也包含了非常多的细节,曾看到一句话:如果面试官问你熟悉哪个机器学习模型,可以说 SVM,但千万别说 LR,因为细节真的太多了. 秉持着精益求精的工匠精神不断对笔记进行 ...
- 【逻辑回归学习笔记】
算法描述 1.逻辑回归要做的事就是寻找分界面实现二分类. 2.问题假设:对一堆三角形和正方形分类. 3.数据输入:已知正方形和三角形的坐标和标签. 4.算法过程: 知识储备 1.分类和回归 ①分类的目 ...
- 逻辑回归函数学习笔记
继续逻辑回归学习,今日笔记记录. 1.逻辑回归和线性回归的关系:对逻辑回归的概率比取自然对数,则得到的是一个线性函数,推导过程如下. 首先,看逻辑回归的定义 其次,计算两个极端y/(1-y),其值为( ...
- 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授
逻辑回归 上一节我们知道,使用线性回归来处理 0/1 分类问题总是困难重重的,因此,人们定义了逻辑回归来完成 0/1 分类问题,逻辑一词也代表了是(1) 和 非(0). Sigmoid预测函数 在逻辑 ...
- LVM逻辑卷分区笔记
磁盘的静态分区有其缺点:分区大小难评估,估计不准确,当分区空间不够用的时候,系统管理员可能需要先备份整个系统,清除磁盘空间,然后重新对磁盘进行分区,然后恢复磁盘数据到新分区,且需要停机一段时间进行恢复 ...
- 适合理工直男的钟平老师逻辑英语学习笔记
一切的一切都只是套路! --鲁迅 核心公式: En: (状语1) 主(定语1) 谓(状语2) (宾)(定语2) (状语1) Ch: (状语1) (定语1)主 (状语2)谓 (定 ...
- 【数字逻辑】学习笔记 第四章 Part2 常用组合逻辑电路与竞争、险象
文章目录 一.常用组合逻辑电路 1. 译码器 (1) 二进制译码器 74LS138(3/8译码器) a. 一般符号和图形符号 b. 74LS138功能表 c. 两片 `74LS138` 构成 `4-1 ...
- 线性回归、逻辑回归学习笔记
学习源代码 import numpy as np import matplotlib.pyplot as plt def true_fun(X): # 这是我们设定的真实函数,即ground trut ...
最新文章
- Mac下安装SecureCRT客户端并激活
- 利用Simple-RTMP-Server搭建RTMP和HLS直播服务(上)
- FFT:从入门到沉迷
- mac 通过 homebrew 安装mongodb
- 深度学习——模型的压缩和加速
- “The server requested authentication method unknown to the client.”的解决方案
- 由旋转矩阵计算欧拉角的方法
- 如何创建一个简单 APT 仓库
- plsq卸载 删除注册表、_别再用老方法卸载电脑软件了,只会让电脑越来越慢
- 删除同域名所有cookies_Namesilo域名解析DNS设置教程
- 中文版modbus测试软件,Modbus调试工具
- 使用PreTranslateMessage(MSG* pMsg)截获键盘数字键
- OpenWrt挂载U盘(NTFS)并在网上邻居共享访问
- win7 防火墙开启ping
- 结构化 VS 非结构化
- 操作系统文件管理实现思路
- “实体梁的铰接”你还不会吗?SOLIDWORKS Simulation轻松实现
- 如何禁用和恢复任务管理器
- 关于Codewarrior 中的 .prm 文件
- 我实习时参与过的某医院信息系统功能说明
热门文章
- MATLAB入门学习笔记12
- Human Pose Estimation with Spatial Contextual Information(CVPR2019)
- windows下编译chromium浏览器的方法
- 计算机语言排名labview,编程语言排名
- Monte Carlo Counterfactual Regret Minimization
- fat32 linux 打包工具_自己封装系统(雨林木风一键系统封装工具V3.65)
- 图像的模式(RGB和CMYK)、通道(8位、16位、32位)分别有什么作用
- 盘点春节营销刷屏的那些痛点指南!
- JVM内存模型和性能调优:阿里巴巴Arthas调优工具:什么是Arthas- 第43篇
- VSCode中自定义的snippets对h文件无效的解决办法