Linux复习_05_进程管理&进程加载

数据总线 地址总线 控制总线 把 CPU和内存和I/O连接起来的。

main.c 编译链接 main(ELF)====》在磁盘上存放。

程序===执行===》进程 存放在内存。

CPU按照顺序执行进程的指令。

操作系统对于进程的管理:(程序:乐谱 进程:演奏的过程 结果:歌曲)

进程的概念:运行中的程序。|    进程是一组有序指令+数据+资源的集合。程序:存储在磁盘上的可执行文件。

 

操作系统通过PCB(进程控制块)记录进程的相关属性(pid,ppid,优先级,程序计数器,程序上下文)。

 

进程新生成时,必须先分配PCB结构,后才生成进程主体

进程结束时,先释放主体,然后才会释放PCB结构



僵死进程:进程主体释放,但是PCB依旧保存。

 

 

 

操作系统发展

  1. 串行处理

  2. 批处理
  3. 多道程序设计
  4. 分时
  5. 实时
     

主函数传参:

int main(int argc ,char *argv[],char *envp[]);

argc:传递的参数的个数。

argv:传递的参数列表(默认会给函数传递一个参数:执行的命令)

envp:环境变量

 

输出缓冲区刷新的条件:

  1. 程序结束 _exit(0)不起作用
  2. 遇到'\n'
  3. 缓冲区满 1024
  4. 主动刷新fflush(stdout)

atexit(void(*fun)() );注册一个退出函数,多个执行顺序为栈的特性。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void fun1()
{
	printf("i am fun1\n");
}
void fun2()
{
	printf("i am fun2\n");
}
int main()
{
	atexit(fun1);
	atexit(fun2);
	printf("hello\n");
	sleep(3);
	printf("world\n");
	exit(0);
}
[root@Jay going0319]# ./printf 
hello
world
i am fun2
i am fun1

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值