《程序员的自我修养-链接加载与库》读书笔记(1)---基础知识储备

来源:互联网 发布:源码交易 编辑:程序博客网 时间:2024/05/16 11:49

计算机是一个非常广泛的概念,拥有计算概念的都可以称作计算机;

 

各部件频率适配

IO控制器:协调I/O设备和总线之间的速度

Cpu倍频:系统总线与内存频率一致,CPU采用倍频的方式与系统总线通信

北桥芯片:协调CPU、内存和高速图形设备,北桥也简称PCI桥,起汇聚作用

南桥芯片:磁盘、USB、键盘、鼠标等设备连接在南桥上,南桥汇总后连接到北桥

 

SMP与多核:

SMP:一个计算机拥有多个CPU,每个CPU的数量在系统中所处的地位和功能是一样的

SMP在处理大并发且独立的请求时非常有用

多核:多处理器成本很高,多个处理器共享昂贵的部件,只保留多个核心,以一个处理器的外包装出售

 

计算机领域的任何问题都可以通过增加中间层解决;

 

现代计算机体系结构从上而下严格遵从层级结构设计

 

系统软件成功商用并不断升级换代的重要前提:接口应该后项兼容,也即高版本接口功能应该是低版本的超集而不应该是交集;

 

API接口:提供者是运行库

系统调用:运行库调用,系统调用以软件中断实现,Linux使用0x80中断,win使用0x2E中断(win XP SP2前)

硬件接口决定了操作系统内核,一般由硬件厂商提供

我们编程时尽量使用运行库提供的API而避免使用系统调用,如打开文件,我们尽量使用fopen API尽量不要使用open系统调用,以避免系统频繁陷入内核态,减小系统开销

 

CPU调度策略:

多道程序设计:

某个程序暂停使用CPU时,监控程序调度另外等待的程序;

缺点:程序没有优先级概念

分时系统:

每个程序运行一段时间都主动让出CPU

缺点:系统任何一个程序死循环都可以导致死机,程序需要显式调用API让出CPU

多任务系统:

操作系统接管了所有硬件资源,且运行在内核态,其它进程运行在用户态,每个进程有独立地址空间,CPU由操作系统统一分配,根据优先级进行CPU调度;

 

设备驱动:

对硬件统一管理和抽象,提供统一的硬件访问方式,屏蔽用户直接读写硬件端口、处理硬件中断等;使用户更关注应用程序本身开发

具体来讲,操作系统厂商为硬件厂商提供一系列接口和框架规范,由厂商提供驱动;

 

硬盘结构:

一个硬盘à多个盘片à每个盘片分两面à每面分若干个磁道à每个磁道分为若干个扇区

目前硬盘使用逻辑扇区概念,扇区从0编号,一直到最后一个扇区

 

内存复用:

使用中间层解决

32bit机器下,每个进程虚拟为4G空间

分段:

内存虚拟空间映射到物理空间

缺点:

内存不足,换出的是整个程序,涉及大量磁盘访问操作

分页:

利用程序局部性原理

地址空间且为固定大小的页,页大小由硬件决定,操作系统选择

地址访问触发页错误时由系统进行换页操作

cpu利用特殊硬件MMU进行也映射操作

 

线程:

是程序执行流程的最小单元

各个线程共享程序内存空间、文件描述符以及信号等

线程私有空间包括:栈、寄存器以及局部变量、TIS数据等

线程调度策略:

优先级调度:高优先级线程全部执行完毕时低优先级线程才得到调度,为防止饥饿,长时间得不到调度的低优先级线程会逐渐调高优先级

轮转法

I/O密集型线程比CPU密集型线程更易得到优先级提升

Linux下线程创建方法:

Fork:复制当前线程,通过写时复制提高复制速度,降低内存占用,fork只能产生父任务镜像

Exec:产生新的可执行镜像

Clone:创建子进程并从指定位置执行

 

为使得多线程下用户操作具有原子性,引入同步和锁的概念

mutex:二元信号量

信号灯:多元信号量

 

代码尽量设计为可充入的,重入特点如下:

不使用任何(局部)静态或全局 const变量

不调用不可重入函数

不依赖锁

仅依赖调用者提供的参数

 

换言之,函数可重入应该是无状态且高内聚的

 

防止过度优化的方法:

使用volatile,防止编译器调整变量调用的指令顺序,防止将变量写到寄存器不写回

使用cpu指令 barrier阻止将该命令前的指令交换到该命令后

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 中立性细胞偏低怎么办? 孩子爱告状老师怎么办 高中学不好数学怎么办 想做老师应该怎么办 教师职称换学校怎么办 大四差选修学分怎么办 尔雅通识课学分没修满怎么办 大学全英文授课怎么办 小孩脑部有囊肿怎么办 防震期间门应该怎么办 在家待着没意思怎么办 人户分离上学怎么办 小孩上学没人接送怎么办 宝宝上学没人接送怎么办 上海浦东新区酒类许可证怎么办 金税盘里报税处理打不开怎么办 惠民卡到期了怎么办 遇到不拴狗链的主人怎么办 平安福没钱续保怎么办 提前很久到机场怎么办 机场来早了怎么办 机场去早了怎么办 只有高中学历该怎么办 没钱没学历该怎么办 中招分数压线怎么办 两岁宝宝蛀牙怎么办 大学必修课差一分怎么办 好医生差两分怎么办 万丽酒店怎么办会员 银行放款慢 业主怎么办 错过了毕业申请怎么办 初中生字写不好怎么办 对口升学没考上怎么办 天生喝不了酒怎么办 王者荣耀乱举报怎么办 易班考试不及格怎么办 易学习忘记密码怎么办 电脑qq不能登录怎么办 被钱心智迷失怎么办 自考第一次没过怎么办 宝宝不会用吸管怎么办