LINUX进程管理
1. 进程是什么?
一个进程就是出于执行期的程序, 包括:可执行程序代码(代码段), 打开的文件, 挂起的信号, 内核内部数据, 处理器状态, 地址空间, 一个或多个执行线程, 当然还包括用来存放全局变量的数据段, 等等.
2. 什么是线程?它和进程的关系是什么样的? 线程在LINUX中具体是怎么样实现的?
是在进程中活动的对象, 对linux而言, 线程只不过是一种特殊的进程.
线程之间可以共享虚拟内存, 但拥有各自的虚拟处理器.
3. 进程在内核中的表示.
3.1 通过大约1.7K(在32位的机器上)的进程描述符task_struct来表示, 所有这些结构体组成一个双向的循环列表(被称为task list).
3.2 这个task_struct包含了内核管理一个进程所需的所有信息.
3.3. 在2.6以前的内核中,各个进程的task_struct存放在它们内核栈的尾端; 现在是用slab分配器来动态生成的, 只需在栈底(对于向下增长的栈来说)或栈顶(对于向上增长的栈来说)创建一个新的结构struct_thread_info.
task_struct结构体:
struct_thread_info结构体:
3.4 进程有下面这些状态:
4. 进程的创建
5. 进程的终结过程
一些大的概念:
1. UNIX操作系统的两个基本抽象: 进程和文件.
2. 在现代操作系统中, 进程提供两种虚拟机制: 虚拟处理器和虚拟内存.
相关文档:
线程处于分离状态后,当线程退出后,则有操作系统来负责系统的回收。
创建分离状态线程的方法有:
1、在线程函数中调用, pthread_detach(pthread_self());
2、线程属性的设置函数
摘自:Unix 环境高级编程
int makethread(void *(*fn),void *arg)
{
int err;
&n ......
先把中断处理流程给出来
1.进入中断处理程序--->2.保存关键上下文---->3.开中断(sti指令)--->4.进入中断处理程序的handler--->5.关中断(cli指令)---->6.写EOI寄存器(表示中断处理完成)---->7.开中断。
硬中断:
对应于上图的1、2、3步骤,在这几个步骤中,所有中断是被屏蔽的,如果在这个时候睡 ......
1. Technically speaking, and in this book, the operating
system
is considered the parts of the system responsible for basic use
and administration. This includes the kernel and device drivers, boot loader,
command shell or other user interface, and basic file and system utilities ......
级别: 初级
左锦 (zuo170@163.com), 副总裁, 南沙资讯科技园
2003 年 7 月 03 日
Linux 操作系统从一开始就对串行口提供了很好的支持,本文就 Linux 下的串行口通讯编程进行简单的介绍。
串口简介
串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-2 ......