程序和进程
程序是指编译好的二进制文件,在磁盘上不占用系统资源
进程是一个抽象概念与操作原理联系紧密,进程是活跃的程序,占用系统资源,在内存中执行
并发
在操作系统中,一个时间段中有多个进程都处于已启动运行到运行完毕之间的状态。但在任意一个时刻点上仍只有一个进程在运行
单道程序设计
所有进程一个一个排队执行
多道程序设计
在计算机内存中,同时存放几道相互独立的程序,他们在管理程序控制之下,相互穿插的运行
虚拟内存与物理内存映射关系
进程控制块
进程id:系统中每个进程唯一的ID。init进程第一个启动,pid为1。PID为零的进程,为调度进程。
进程的状态:初始态,就绪态,运行态,挂起态,停止态
进程切换时需要保存和恢复一些cpu寄存器
描述虚拟地址空间的信息
描述控制终端的信息
当前工作目录
umask掩码
进程状态
三态
就绪状态:当进程已分配到除CPU以外的所有必要资源后,只要能再获得处理机便可以立即执行。
执行状态:只进行已获得处理机,其程序正在执行
阻塞状态:进程因发生某种事件而暂停执行时状态,以进程的执行受到阻塞
五态
创建状态:进程在创建时需要申请一个空白的bcp,向其中填写控制和管理进程信息,完成资源分配
终止状态:进程结束或出现错误或者系统终止进入中终止状态,无法执行
进程介绍和创建
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础
fork函数
Fork函数通过系统调用创建一个与原来进程几乎完全相同的进程
我们可以通过进程pid,来区分父进程和子进程,父进程返回的是子进程的PID,子进程返回的是零
pid_t fork();
getpid()获取当前进程ID
getppid()获取当前进程的父进程ID
getuid()获取当前用户ID
getgid()获取当前用户的组ID