Linux学习笔记<基础概念>

若干个重要的概念

  • 信息本质
  • 翻译
  • 编译系统
  • 存储设备层次结构
寄存器>L1Cache>l2Cache>L3Cache>DRAM>磁盘
  • 操作系统管理硬件
概念             硬件
文件              io设备
虚拟存储器       io设备 主存
进程              io设备 主存 处理器
  • 虚拟存储器
  • 文件
  • 进程
  • 线程
共享代码和全局变量
  • 虚拟存储器
  • 系统之间利用网络通信

程序结构和运行

信息存储

  • 16进制
C声明32位机器64位机器
char11
short int22
int44
char*48
float44
double88
  • 数据大小
  • 寻址

机器的机器级表示

过程

  • 栈帧结构
  • 转移控制
  • 寄存器使用
  • 递归过程

数组分配

  • 原则
  • 指针运算
  • 嵌套数组
  • 变长数组
  • 定长数组

异质的数据结构

  • 结构
  • 联合
  • 数据对齐

理解指针

GDB调试器

优化程序性能

存储器层级结构

链接

符号表
重定位
可执行目标文件
动态链接共享库

异常控制流

异常
进程

一个经典定义是:一个执行中的程序的实例
内存
内核存储空间
用户栈
**
共享库的存储器映射区域
运行时堆(malloc时创建)
读/写段
只读段
**

进程控制

  • 获取进程IDpid_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服务器

并发编程

基于进程的并发编程
基于线程的并发编程

  • 多线程中的共享变量
  • 多线程中的信号量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值