绪论--有关linux的有关概念

源码地址:www.kernel.org

                  /usr/src/linux


Linux 是个真正的unix内核,但它不是一个完全的linux操作系统

IEEE POSIX :基于unix的可移植操作系统

CAE:       公共应用环境


UNIX 操作系统的特点: 诸如虚拟存储,虚拟文件系统,轻量级进程,Unix信号量,SVR4进程间通信,支持多对称处理器系统


线程的上下文切换比进程代价小的多:因为前者通常在同一个地址空间执行


多线程应用程序的支持:用户程序根据许多相对独立的执行流来设计,而这些执行流共享应用程序的大部分数据结构。一个多线程应用程序由许多轻量级进程LWP组成,这些进程可能共享地址空间,物理内存页,打开文件等操作。Linux定义了自己的轻量级进程版本。Linux把LWP作为基本的执行上下文,通过非标准的clone()系统调用来处理它们!


多处理器支持:SMP 


硬件为CPU引入至少两种不同的执行模式:用户态;内核态


Unix 是实施系统资源硬件保护的多用户系统。


超级用户: root 


进程间通信机制:

信号量

消息队列

共享内存     shmget()  shmat() shmdt()

这三个统称为System V IPC   // 显式获得资源分别是:shmget() semget() msgget()

管道

FIFO

POSIX 消息队列  // 类似于System V IPC 消息队列  更简单的基于文件的接口


进程管理

fork()   创建新进程

_exit()  终止一个进程

exec()  装入一个新程序


线性地址:

目录+表+offset(12bit)


页:  一组数据

页框:内存中的物理地址


每一个进程有自己的页全局目录和页表集,当发生进程切换时:Linux 把cr3控制寄存器的内容保存在前一个执行进程的描述符中,然后把下一个要执行的进程的描述符的值装入cr3寄存器中。新进程重新开始在CPU上执行时,分页单元指向了一组新的页表。


线性地址映射到物理地址虽然有点复杂,但已经成了比较机械的任务。

函数和宏

线性地址字段:简化页表处理

PAGE_SHIFT 12  offset 字段的位数

PAGE_MASK  0xfffff000

PMD_SHIFT     页中间目录 22 if PAE disable or 21 if PAE enable

PMD_SIZE

PMD_MASK

PUD_SHIFT    页上级目录

PUD_SIZE

PUD_MASK

PGDIR_SHIFT  页全局目录

PTRS_PER_PTE      PTRS_PER_PMD     PTRS_PER_PUD      PTRS_PER_PGD

分别是页表   页中间目录, 页上层目录, 页全局目录表项的个数











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值