今日主要学习进程
什么是进程:进程:(进行中的程序)--正在运行的程序 (动态的) ---内存
程序的一次执行过程!
程序 -- a.out (可执行程序) ---静态的
程序源代码
程序 加载 到内存 运行起来 成为了 进程。
C语言五大区
栈
堆
静态区
字符串常量区
代码段
cpu的性能
操作系统 //多道程序
程序1->|
程序2->|--- [CPU]-->
程序3->|
进程1->| 4G空间
进程2->|--- [CPU]-->
进程3->|
描述 记录 程序运行过程中的 动态信息!
一个程序 可以 对应到多个进程
并发: 某一时刻,同时发生
程序 = 数据+代码
inux 怎么管理进程?
PCB (process control block)//账本 信息登记表
户口信息: //父子关系
进程的一生:
创建进程
执行任务
(1).跟父进程相同的任务 比如: 淘宝 fork
(2).有自己的任务要做 比如: shell执行命令 fork + exec
进程结束
exit()
(1).孤儿进程 --- 没有父亲 (孤儿进程则会有系统自己认领,这时候子进程则成为一个后台程序)
(2).僵尸进程 --- 有父亲,但是自己先挂了
进程的状态:
3个状态,就绪→执行态→阻塞(等待,睡眠)基本操作系统
linux中的状态,运行态,睡眠态,僵尸,暂停态。
父子进程在代码中
父子进程是不分先后的。在运行过程中也会出现先运行子进程,后运行父进程。
子进程的下一步指令实在fork后。
两个fork连用,就会有四个进程(包括父进程)
n个就是2 的n次方。