操作系统复习(进程的一些基本概念)

进程的一些基本概念

随着操作系统发展到分时系统,为了开发同一道作业中不同作业步之间的并发,引入了进程机制。在现在的操作系统中,程序以进程的方式使用系统资源,进程的出现实现了操作系统的并发性。

进程定义

进程可以理解为程序对数据或请求的处理过程。进程有以下特点:

  1. 进程至少运行一个可执行程序,含有代码和初始数据。
  2. 进程包括一个独立的进程用户空间。
  3. 进程包括系统资源。
  4. 进程包括一个执行栈区。

进程至少运行一个可执行程序,含有代码和初始数据

Linux 0.11 为例,Linux 0.11中的可执行文件格式为a.out,包括:
(1) 执行头部分。这其中包含一些参数,内核使用这些参数把执行文件加载到内存中并执行。

struct exec {
 unsigned long a_magic;	/* 目标文件魔数*/
 unsigned a_text;		/* 代码长度,字节数 */
 unsigned a_data;		/* 数据长度,字节数 */
 unsigned a_bss;		/* 文件中的未初始化数据区长度,字节数 */
 unsigned a_syms;		/* 文件中的符号表长度,字节数 */
 unsigned a_entry;		/* 执行开始地址 */
 unsigned a_trsize;		/* 代码重定位信息长度,字节数 */
 unsigned a_drsize;		/* 数据重定位信息长度,字节数  */
};

(2) 代码段部分。含有程序执行时被加载到内存中的指令代码的相关数据。
(3) 数据段部分。这部分含有已经初始化过的数据,总是被加载到可读写的内存中。
(4) 数据重定向部分。
(5) 代码重定向部分。
(6) 符号表部分。
(7) 字符串表部分。

进程包括一个独立的进程用户空间

每个进程都有其独立的地址空间,其中存放着程序与数据,当不同的进程执行同一个程序时,由于不同进程的地址空间是相互独立的,所以它们处理的数据是不同的。

进程包括系统资源

程序运行有时会需要一些必须的系统资源,例如I/O设备,文件等等。

进程包括一个执行栈区

操作系统必须为进程分配一个栈区,用来保存过程调用时的现场或在栈中分配的局部变量。

以上讨论进程时,涉及到了程序、数据、用户栈,为此引入进程映像的概念,进程映像为程序、数据、用户栈的集合。

进程控制块

进程控制块(PCB),包括进程标识信息,处理机状态信息,进程控制信息。

Linux 0.11的PCB结构如下:

struct task_struct {
/* these are hardcoded - don't touch */
	long state;	/* -1 unrunnable, 0 runnable, >0 stopped ,进程的状态*/
	long counter;
	long priority;
	long signal;
	struct sigaction sigaction[32];
	long blocked;	/* bitmap of masked signals */
/* various fields */
	int exit_code;
	unsigned long start_code,end_code,end_data,brk,start_stack;
	long pid,father,pgrp,session,leader;
	unsigned short uid,euid,suid;
	unsigned short gid,egid,sgid;
	long alarm;
	long utime,stime,cutime,cstime,start_time;
	unsigned short used_math;
/* file system info */
	int tty;		/* -1 if no tty, so it must be signed */
	unsigned short umask;
	struct m_inode * pwd;
	struct m_inode * root;
	struct m_inode * executable;
	unsigned long close_on_exec;
	struct file * filp[NR_OPEN];
/* 局部描述符表,进程的地址空间 */
	struct desc_struct ldt[3];
/* tss for this task ,即任务状态段*/
	struct tss_struct tss;
};

总结

进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源。一个进程实体由进程控制块、程序段、相关数据段组成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值