linux相关知识点


linux运行模式:核心态、用户态(为了系统保护)
进程与进程之间的地址空间不能随便互访,通过虚存管理机制实现这种保护,虚拟存储的地址引用通过地址变换机制转换成物理存储的地址引用
进程的上下文包括:
用户级上下文:正文、数据、用户栈、共享存储区
寄存器上下文:程序计数器、处理及状态寄存器、栈指针、通用寄存器
系统级上下文:进程表结构、存储表、页表
进程调度时必须对全部上下文信息进行切换,新调度的进程才能运行

linuxs进程管理:
利用一个数据结构task struct表示一个进程,该结构称为进程控制块(PCB)。所有taskstruct结构的指针形成一个数组task。该结构主要包括以下功能信息:
1)状态信息(运行、等待、停止、死亡)
2)调度信息(优先级、策略)
3)进程标识符(系统中每个进程都有唯一的进程标识符,是一个数字,用来控制进程对系统中文件和设备的存取权限)
4)进程间通讯信息(信号、管道、IPC机制包括共享内存、信号量和消息队列)
5)进程链信息(linux中除初始化进程外,任一进程都有一个父进程。每个进程都由父进程复制而来,task struct包含有指向父进程和兄弟进程已经子进程的指针,所有进程由双向链表连接起来,根是init进程的task struct结构,这个链表被linux内核用来寻找系统中的所有进程)
6)时间和定时器(进程的建立时间、花费的cpu时间、以及与进程相关的interval定时器,当定时器到,os会向该进程发送信号)
7)文件系统信息(进程可自由打开或关闭文件,包含指向每个打开文件描述符的真真等)
8)虚拟内存(多数进城都有一些虚拟内存(内核线程和后台进程没有))

进程交换:系统需将当前进程的状态、处理器寄存器及上下文状态保存到进程的task struct中,而即将运行的进程的task struct将装入到机器中,如当前进程或即将运行的进程是用来虚拟内存,则必须更新系统中的内存页面页表

进程使用的文件:每个进程在启动时至少就已打开三个文件:标准输入、标准输出、标准错误输出
进程使用的虚拟内存:包括进程的可执行代码和数据。请求分页技术,缺页中断
系统调用:系统调用表存放所有系统调用函数的入口地址。发生在用户进程通过调用指定函数以请求内核提供服务的时候。返回Int值。主要由以下几个大类:
处理I/O请求(open、close、read、write、poll),
进程操作(fork、exeeve、kill)
时间管理(time)
内存管理(mmap, brk)
进程的创建和中止:系统启动时总是处于内核模式,此时只有一个进程:初始化进程,标识号为1,负责完成系统初始化设置并执行初始化程序
创建新进程是通过克隆老进程或当前进程来创建的,使用系统调用fork 或者clone,并且是在内核模式下完成,系统会分配一个task struct数据结构和进程堆栈,以及一个唯一表示此新进程的的标识符pid

进程间的通讯机制
信号:是Linux最基本的通讯机制,可用来向一个或多个进程发送异步事件信号,传送少量信息。通过设置task struct 中signal字段的某一位来产生
管道:通过文件实现。写操作和读操作。
FIFO管道(命名管道):驻留在物理设备中特殊文件;I/O完成后不删除;父进程不同的进程可通过名称共享管道
管道:驻留在内存的特殊文件;I/O完成后算出;父进程不同的进程难以共享管道
IPC机制
消息队列:是进程读、写信息的存储空间。linux维护一个msgque消息队列链表。
信号量:一个整型变量,其值只能由P V操作改变。用于实现进程的互斥和同步
共享内存:创建共享内存,映射共享内存,映射到具体进程空间

cache中存放最近使用的页面的先行地址和物理地址之间的对照表

交换空间:linux采用两种方式保存换出的页面,一种是用整个块设备,如硬盘的一个分区,成为交换设备;另一个是用文件系统中固定长度的文件,称为交换文件。它们统称为交换空间。

存储管理系统的高速缓冲机制:
Buffer Cache(块缓存):包含了由块设备驱动程序使用的数据缓冲(从块设备读出或写入的信息快)。缓冲区单元大小一般是固定的。块设备比如硬盘。如果数据在buffer cache中可以找到,则无需从硬盘中读取
Page Cache(页缓存):用来加速硬盘上可执行映像文件与数据文件的存取,每次缓冲一个页面的文件内存。页面从磁盘读入内存后缓存在Page Cache上,每次需要读取文件时先从Page Cache中读取,否则从文件系统调入。
Swap Cache:只有修改过的页面存储在交换文件中

free命令中显示的buffer和cache都是占用内存
buffer buffer cache:是块设备的读写缓冲区
cache(page cache):是文件系统的缓冲区
swap:是交换空间,是虚拟内存的表现形式。系统为了应付一些需要大量内存的应用,而将磁盘上的空间作为内存使用,当物理内存不够用时,将其中一些暂时不需要的数据交换到交换空间。好处是让进程以为好像可以访问整个系统物理内存
swap cache:表示交换分区在内存中的临时缓存

Page cache和Buffer cache的区别
磁盘操作有逻辑级(文件系统)和物理级(磁盘块),这两种cache就是分别缓存逻辑和物理级数据的
Buffer(Buffer Cache)以块形式缓冲了块设备的操作,定时或手动的同步到硬盘,它是为了缓冲写操作然后一次性将很多改动写入硬盘,避免频繁写硬盘,提高写入效率。
Cache(Page Cache)以页面形式缓存了文件系统的文件,给需要使用的程序读取,它是为了给读操作提供缓冲,避免频繁读硬盘,提高读取效率。


linux命令
常见命令
cat  cp  scp  cd df dirs ls  ps  kill  rm mkdir   chmod pwd  vi  vim
全部评论

相关推荐

怎么起名字:学历不足,
点赞 评论 收藏
分享
评论
2
12
分享
牛客网
牛客企业服务