系统编程阶段:
进程概念 进程控制 基础I0 进程间通信 进程信号 多线程
进程概念:
冯诺依曼体系结构:
冯诺依曼奠定了现代计算机的硬件体系结构
现代计算机的几大硬件单元:
输入设备:键盘
输出设备:显示器
存储器:内存
运算器: CPU
控制器
输入设备 存储器 输出设备
сpu
硬件结构决定软件行为
操作系统:软件
目的:让计算机更好
功能:统筹管理计算机上的软硬件资源
如何管理:先描述,后组织
用户printf("hello")
shell lib
系统调用接口 write
操作系统
驱动程序
键盘 鼠标 显示器 ...
库函数和系统调用接口的关系:
上下级的调用关系,库函数就是对系统调用接口的一层封装
操作系统:搞管理的软件
对下管理软硬件资源,对上提供良好的执行环境
管理:先描述,再组织进行管理
进程概念:
进程:进行中的程序
程序:一堆代码-在硬盘上边,程序运行起来就会被加载到内存中
操作系统管理进程:描述进程 PCB---struct task struct{}
操作系统通过pcb来管理运行中的程序
描述信息:进程标识符(PID) ,进程状态,优先级,程序计数器,上下文数据,记账信息,内存指针,IO状态信息
cpu的分时机制:轮询调度进和
时间片:cpu在一个进程上运行的时间
进程查看:
/proc 进程运行信息存放目录
ps -ef -aux 查看系统上的进程信息
getpid() 获取调用进程的进程ID
进程创建: forko
通过复制调用进程创建子进程
子进程复制的就是父进程的pcb (父子进程数据,代码看起来都一样)
代码共享,数据独有
返回值:
父进程返回的是子进程的pid
子进程返回的是0
我们的程序因为父子进程代码运行一样,所以需要通过返回值来分流父子进程