摘要:1)在linux下内存分配是以页为单位的,而页是通过段管理 2)一个linux进程的虚拟地址空间分布如上图所示,分为用户空间和内核空间,对于一个32位操作系统来说,4GB的空间分成两部分,低地址的0~3G给用户空间,高地址的3G~4G给内核空间 1.用户空间 1.1只读数据段(也叫常量段,.roda
阅读全文
摘要:1.信号本质 1)信号是一种软件中断,是在软件层次上对中断的模拟; 2)、在日常生活中也有很多信号,比如常见的红绿灯信号,我们看见红灯就停下,linux中的信号也是类似的,它提供一种机制告诉某个进程在某个时刻该怎样做 2.信号产生(来源) 1)硬件来源:比如我们按下了键盘或者其它硬件故障; 2)软件
阅读全文
摘要:1.概念 1)特权级:对于任何操作系统来说,创建一个进程是核心功能。创建进程要做很多工作,会消耗很多物理资源。比如分配物理内存,父子进程拷贝信息,拷贝设置页目录页表等等,这些工作得由特定的进程去做,所以就有了特权级别的概念。最关键的工作必须交给特权级最高的进程去执行,这样可以做到集中管理,减少有限资
阅读全文
摘要:1.三个UID 这三个UID分别是实际用户ID(real uid)、有效用户ID(effective uid)、保存的设置用户ID(saved set-user-ID)(SUID) 实际用户ID(RUID,real uid):一般是在登录之后,就被唯一确定的,就是登陆的用户的uid 有效用户ID(E
阅读全文
摘要:1.概念 linux中系统调用的错误都存储于错误返回码errno中,errno由操作系统维护,存储就近发生的错误,即下一次的错误码会覆盖掉上一次的错误 2.errno值 linux中,在头文件 /usr/include/asm-generic/errno-base.h和/usr/include/as
阅读全文
摘要:1.进程间通信(IPC) 进程的地址空间是相互独立的,不能相互访问,进程间通信(IPC)技术实现进程之间交换信息 2.IPC分类 1)低级通信主要用于进程之间的同步、互斥等控制信息的传递 2)高级通信主要用于进程间数据信息的传递,常见的高级通信有管道、消息队列、共享内存等 3)查看系统IPC状态的指
阅读全文
摘要:概念 内核利用文件描述符来访问文件,文件描述符是一个非负整数
阅读全文
摘要:概念 上下文切换,有时也称做进程切换或任务切换,是指CPU 从一个进程或线程切换到另一个进程或线程
阅读全文
摘要:1.互斥量 1)只有两个状态:加锁状态,不加锁状态 2)当互斥量处于加锁状态时,任何试图再次加锁的行为都将被休眠阻塞 3)互斥量必须初始化,对于静态分配的互斥量,设置成一个特定的常量来初始化;对于动态分配的互斥量,调用其相应的_init函数初始化 4)如果是动态分配的互斥量,则在使用完之后要调用其相
阅读全文
摘要:概念 当进程调用一种exec函数时,该进程执行的程序完全替换为新程序,新程序从main函数开始执行。调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用磁盘上的一个新程序替换了当前进程的正文段、数据段、堆和栈
阅读全文
摘要:1.僵死进程 1)一个进程终止了,内核会为它保留一定的信息,包括进程ID、终止状态、使用CPU的时间总量等 2)为什么内核要保留?因为有时候它的父进程想知道它的退出状态 3)一个已经终止的进程,但是其父进程由于很忙,尚未对其进行尚后处理(处理保留的信息,彻底释放它的资源),则这个进程在被处理前为僵死
阅读全文
摘要:三个都是用来创建新进程的函数 fork 概念 1)fork函数调用一次会返回两次,给父进程返回子进程的进程ID,给子进程返回0(这么设计的原因:父进程可以有很多子进程,没有一个函数可以让父进程知道所有子进程的进程ID,所以用这种方式让父进程知道子进程的ID;子进程想要知道父进程的ID只需要通过调用g
阅读全文
摘要:1.虚拟内存 为什么要提出虚拟内存: 1)物理内存不够:同时运行的进程太多,需要很多内存,在物理上扩展内存相对有限(内存条都很贵呀),所以提出一种从逻辑上来扩充内存的方法,叫做虚拟内存。 2)安全隐患:如果全部的进程都放在物理内存上,那么进程访问物理内存的时候很可能会修改到其它进程的内存,甚至修改到
阅读全文
摘要:CPU组成和寄存器 1)CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连 2)寄存器是CPU的组成部分,用来暂存指令、数据和地址,CPU对其读写速度是最快的,不需要IO传输 存储单元 1)8位二进制(1字节)作为一个存储单元,这是由历史原因决定的,早期的ASCII是7位,后来又有IB
阅读全文
摘要:1.大端 一个数的最高有效位排在地址值小的地址上,最低有效位排在地址值大的地址上 2.小端 一个数的最低有效位排在地址值小的地址上,最高有效位排在地址值大的地址上 一个32位int数的十六进制值为0x01234567(最高有效位——最低有效位),位于地址0x100~0x103(每个地址单元一般容量为
阅读全文
摘要:二进制 计算机中,数值的二进制一律用补码表示; 正数 原码:按照绝对值大小转换成的二进制数; 反码:与原码相同; 补码:与原码相同; 负数 原码:按照绝对值大小转换成的二进制数,然后最高位赋为1; 反码:对该数的原码除符号位以外各位取反; 补码:负数的反码加1; 二进制 计算机中,数值的二进制一律用
阅读全文
摘要:1.死锁 1)所谓死锁是指多个进程因竞争资源造成的一种僵局(相互等待),若无外力作用,这些进程都将无法推进 2)举例 例子1:如果进程A正在使用资源R1同时提出将要使用资源R2的请求,进程B正在使用资源R2同时提出将要使用资源R1的请求,这样两个进程都将无休止地等待下去 例子2:两个山羊过一个独木桥
阅读全文
摘要:1.信号量(semaphore) 1.1概念 信号量是一个计数器,常用来实现进程间的同步和互斥 1.2允许的两个操作 1)原子操作:原子操作是不会被中断的操作,要么就不干,要是干了,它就不会被任何东西打断 2)以下两个均为原子操作 3)down操作(P操作):将信号量的值值减1;当信号量等于0时,再
阅读全文
摘要:临界资源与临界区 一次只能给一个进程使用的资源称为临界资源(首先得是公共资源,有些资源如私有资源,它只能给一个进程使用,不存在临界问题),访问临界资源的那段代码称为临界区。 进程间的相互制约关系 同步 直接制约关系,进程A通过缓冲区向进程B提供数据;当缓冲区空时,进程B不能获得数据而阻塞,一旦进程A
阅读全文
摘要:调度方式(按处理时钟中断分) 非抢占式:在运行的进程只有在该进程完成或发生某种事件(如I/O请求)的情况下才会释放CPU,这样做的结果是发生时钟中断时不会发生调度。 抢占式:进程在CPU上执行时,有一个更紧迫的进程需要使用CPU,则立即暂停正在执行的进程。 调度算法 1.先来先服务(非抢占式) 思想
阅读全文