(1)什么是程序,什么是进程,如何区分它们?
程序:是一个静态概念,例如gcc test1.c -o mytest,在磁盘中会生成mytest文件,这个就叫做 程序。
进程:是程序的一次运行活动,程序运行的时候,系统中就多了一个进程。
(2)如何查看系统中有哪些进程?
1.用ps -aux指令查看,在实际工作中,配合grep来查看程序中是否存在某个进程。
2.使用top指令查看进程,类似windows任务管理器。
(3)什么是进程标识符?
每个进程都有一个非负整数表示的唯一id号,叫做pid,和文件描述符类似。通过编程调用getpid函数来获取自身的进程标识符,使用getppid函数获取父进程的进程标识符。
(4)什么是父进程,什么是子进程?
假设进程A创建了进程B,A就叫做父进程,B就叫做子进程。
(5)C程序的存储空间如何分配?
代码段(正文段):cpu执行的机器指令部分,可以共享。
数据段:初始化过的变量。
bss段:函数外未被初始化的变量。
堆:通常在堆中进行动态存储分配,malloc ,calloc申请存储空间在堆里面申请。
栈:自动变量(局部变量)以及每次函数调用时保存的信息都放在此段中。