=
若干个重要的概念
- 信息本质
- 翻译
- 编译系统
- 存储设备层次结构
寄存器>L1Cache>l2Cache>L3Cache>DRAM>磁盘
- 操作系统管理硬件
概念 硬件
文件 io设备
虚拟存储器 io设备 主存
进程 io设备 主存 处理器
- 虚拟存储器
- 文件
- 进程
- 线程
共享代码和全局变量
- 虚拟存储器
系统之间利用网络通信
程序结构和运行
信息存储
- 16进制
- 字
| C声明 | 32位机器 | 64位机器 |
|---|---|---|
| char | 1 | 1 |
| short int | 2 | 2 |
| int | 4 | 4 |
| char* | 4 | 8 |
| float | 4 | 4 |
| double | 8 | 8 |
- 数据大小
- 寻址
机器的机器级表示
过程
- 栈帧结构
- 转移控制
- 寄存器使用
- 递归过程
数组分配
- 原则
- 指针运算
- 嵌套数组
- 变长数组
- 定长数组
异质的数据结构
- 结构
- 联合
- 数据对齐
理解指针
GDB调试器
优化程序性能
存储器层级结构
链接
符号表
重定位
可执行目标文件
动态链接共享库
异常控制流
异常
进程
一个经典定义是:一个执行中的程序的实例
| 内存 |
|---|
| 内核存储空间 |
| 用户栈 |
| ↓ |
| ** |
| ↑ |
| 共享库的存储器映射区域 |
| ↑ |
| 运行时堆(malloc时创建) |
| 读/写段 |
| 只读段 |
| ** |
进程控制
- 获取进程ID
pid_t getpid(void);pid_t getppid(void);//自己和父进程的pid - 创建和终止
pid_t fork(void);//父进程创建子进程,父进程呢?父进程在程序运行时就启动了。。。
void exitint(int status);//终止
- 回收子进程
//等待子进程结束(exit())
#include<sys/wait.h>
pid_t waitpid(pid_t pid,int *status,int options);
- 进程休眠
#include<unistd.h>
unsigned int sleep(unsigned int secs);
- 加载 运行
#include<unistd.h>
int execve(const char *filename,const char *argv[],const char *envp[])
- fork 和 execve
信号
操作进程的工具
虚拟存储器
物理寻址 虚拟寻址
地址空间
作用
- 缓存的工具
- 存储器管理
- 存储器保护
地址翻译
存储器映射
动态分配
垃圾收集
I/O
网络编程
客户端-服务端模型
IP
套接字
Web服务器
并发编程
基于进程的并发编程
基于线程的并发编程
- 多线程中的共享变量
- 多线程中的信号量
版权声明:本文为博主原创文章,转载请标明出处。
浙公网安备 33010602011771号