首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux相关>企业应用>正文

在Linux世界驰骋系列之三——结构和算法

http://www.oklinux.cn  2005-01-01  赛迪技术天地-开放系统世界  孟庆昌   会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

这一讲将深入到Linux内核中探讨其主要结构和算法,主要介绍进程和内存管理,包括进程的结构、对进程的操作、进程调度、Shell基本工作原理、进程通信、请求分页机制和存储交换等。

进程是动态的实体,每个进程在其生存期间会处于不同的状态,对系统中的资源有不同的需求,彼此间会发生直接或间接的联系。因此,系统必须有一套机制记载和管理它们的状态。

进程的结构

1.task_struct结构

Linux系统中每一个进程都包括一个名为task_struct的数据结构,它相当于“进程控制块”。每一个task_struct结构都有一个指针指向它,所有的这种指针组成系统中的一个进程向量数组task,该数组的默认值是512。在创建新进程时,Linux就从系统内存中分配一个task_struct结构,并把它加入task数组。当前正在运行的进程的task_struct结构用current指针指示。

task_struct结构包含下列几方面的信息:

◆进程状态。

◆调度信息。调度算法利用这个信息来决定系统中的哪一个进程需要执行。

◆标识符。系统中每个进程都有惟一的一个进程标识符(PID)。PID并不是指向进程向量的索引,仅仅是一个数字而已。每个进程同时还包括用户标志符(UID)和用户组标识符(GID),用来确定进程对系统中文件和设备的存取权限。

◆内部进程通信。Linux系统支持信号、管道、信号量等内部进程通信机制。

◆链接信息。在Linux系统中,每个进程都和其它进程存在联系。除初始化进程外,每个进程都有父进程。该链接信息包括指向父进程、兄弟进程和子进程的指针。

◆时间和计时器。内核要记录进程的创建时间和进程运行所占用CPU的时间。Linux 系统支持进程的时间间隔计时器。

◆文件系统。进程在运行时可以打开和关闭文件。task_struct结构中包括指向每个打开文件的文件描述字的指针,并且包括两个指向VFS(虚拟文件系统)索引节点的指针。第一个索引节点是进程的根目录,第二个节点是当前的工作目录。两个VFS索引节点都有一个计数字段用来指向节点的进程数。

◆虚拟内存。大多数进程都使用虚拟内存空间。Linux系统必须了解如何将虚拟内存映射到系统的物理内存。

◆处理器信息。每个进程运行时都要使用处理器的寄存器及堆栈等资源。当一个进程挂起时,所有有关处理器的内容都要保存到进程的task_struct中。当进程恢复运行时,所有保存的内容再装入到处理器中。

共17页: 上一页 1 [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] 下一页

上一篇:Linux教研环境应用 构建安全实验室   下一篇:如何实现Linux防火墙让远程办公有安全

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Linux教研环境应用 构建安全实验室
·如何实现Linux防火墙让远程办公有安全
·向左走向右走 当邮政业“遇上”Linux
·旧招新用:afio让Linux也“Ghost”
·Linux技巧:怎样利用Putty连接Linux主机
·实现基于LDAP的用户管理 挑战记忆极限
·TCO的较量——Linux与SOA的悄然整
·技术入门:怎样用Linux实现组播路由转发
·支持J2EE的应用协作
·在Linux世界驰骋系列之二——Shell编程
·企业应用指南:Linux上的MRTG监控中心
·借助sniffer诊断Linux网络故障(一)
·Linux揭开USB主机设计的神秘面纱
·借助sniffer诊断Linux网络故障(二)
·
·Telnet到SMTP Server发邮件
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·集成Xen的SUSE Linux 10支持SAP数据处
·LAMP(Linux Apache Mysql PHP)环境搭建
·在Ubuntu操作系统下为MySQL添加ODBC驱
·怎么样在VMWare虚拟PC上安装Linux系统
·Linux系统下Apache 服务器网页密码设置
·Linux下架设L2TP IPSec VPN服务器(X509
·教你用vsftp限制用户下载速度和线程数
·红帽和微软在虚拟化平台合作 实现互操
·我国千万亿次超级计算机或采用国产Linu
·批量在LINUX下建立很多FTP用户
·DNS服务器设置篇
·Linux系统下的动态DNS服务配置方法详解
  阅读排行
·DNS服务器设置篇
·Linux系统Rar压缩文件包的使用方法
·邮件系统的选型与架构专题(上篇)
·用LVS构架负载均衡Linux集群系统
·Linux Ubuntu服务器版操作系统介绍及下
·LAMP(Linux Apache Mysql PHP)环境搭建
·Linux环境下JDK,JBOSS以及MySQL的安装
·Linux系统下Web服务器配置详细介绍
·在Linux世界驰骋系列之二——Shell编程
·Linux世界驰骋四——文件系统和设备管
·Linux系统下的动态DNS服务配置方法详解
·Linux下架设L2TP IPSec VPN服务器(X509
·市场也疯狂 零售业应用开源POS系统
·Linux世界驰骋五——Linux常用实用工具
·深入OpenOffice.org之二应用XML文件格
网摘收藏: