Linux学习笔记<基础概念>

来源:互联网 发布:淘宝澳洲代购真假 编辑:程序博客网 时间:2024/06/11 21:30

若干个重要的概念

  • 信息本质
  • 翻译
  • 编译系统
  • 存储设备层次结构
寄存器>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时创建) 读/写段 只读段 **

进程控制

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

并发编程

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

  • 多线程中的共享变量
  • 多线程中的信号量
0 0