进程管理:进程如何被创建,删除
1、每个进程都有一个进程描述符(PID),进程主要通过进程描述符表示。
2、进程描述符类型为task_struct。
3、进程列表存放在叫做任务队列的双向循环链表里。
4、进程主要是通过fork函数创建
5、进程是通过do_exit()函数终结,并用release_task()函数删除进程描述符
进程调度:主要是何时将某个进程投入运行,运行多长时间,进程调度主要是通过完全公平算法来进行的
1、调度的原因是操作系统可以同时并发的交互执行多个进程
2、进程调度也要分类型:I/O消耗型和处理器消耗型
3、调度算法:设置进程优先级,选择适合的时间片,进行公平调度(CFS)
4、调度过程:要对每个进程进行运行时间记录、选择合适的下一个进程、通过schedule函数进入调度,在调度器内进行进程的睡眠和唤醒
5、进程切换:正常进程的上下文切换是通过调度算法进行的,但是也会突然有优先级高的进程出现,例如有中断信号产生,就会出现进程抢占。
6、进程抢占:分为用户抢占和内核抢占,用户抢占是进程从内核返回用户空间时被其他进程抢占;内核抢占是没有锁的进程可被抢占
内核通信同步机制:
1、用户空间和内核空间通信主要是通过系统调用
2、内核的同步方法:原子操作、自旋锁、信号量、互斥体、顺序锁
3、原子操作:其他同步方法的基础;单步执行一个进程
自旋锁:就是一次只有一个线程能够持有自旋锁其他线程只能忙循环等待自旋锁开启
读——写自旋锁:分为读锁(可共享)和写锁(类似于自旋锁)
信号量:在加锁时间较长或者加锁期间会睡眠时使用,是个睡眠锁,等待开锁期间任务进入睡眠状态
读——写信号量:类似于读——写自旋锁,它可以动态的将获取的写锁转换位读锁
内存分配的管理方式:内核把物理页作为内存管理的基本单位
1、连续分配方式:单一连续分配、固定分区分配、动态分区分配和动态重定位分区分配。
2、离散分配方式:以页位基本分配单位:分页存储管理方式:提高内存利用率
以段为基本分配方式:分段存储管理方式:满足用户需求
先将用户程序分成若干个段,再把每个段分成若干个页:段页式存储管理方式
中断及下半部机制:中断就是一个电信号,当处理器收到这个信号时,内核就会执行中断处理程序,每个设备都有一个中断处理程序。
1、上下半部:因为要求系统既要快速响应中断,又要快速完成中断处理程序,所以将中断分为两部分
2、每个中断都有一个特定的中断号,所以驱动程序需要注册中断号
3、下半部主要是执行与中断处理程序相关的但则不需要中断处理程序去执行的工作
内核的数据结构:链表,队列,映射,二叉树
1、链表一般分单向、双向、循环三类,基本操作有增删改查
2、队列最主要的特性是先进先出,队列的创建和重置和撤销、数据的推入和摘取都有相应的函数
3、映射
1、每个进程都有一个进程描述符(PID),进程主要通过进程描述符表示。
2、进程描述符类型为task_struct。
3、进程列表存放在叫做任务队列的双向循环链表里。
4、进程主要是通过fork函数创建
5、进程是通过do_exit()函数终结,并用release_task()函数删除进程描述符
进程调度:主要是何时将某个进程投入运行,运行多长时间,进程调度主要是通过完全公平算法来进行的
1、调度的原因是操作系统可以同时并发的交互执行多个进程
2、进程调度也要分类型:I/O消耗型和处理器消耗型
3、调度算法:设置进程优先级,选择适合的时间片,进行公平调度(CFS)
4、调度过程:要对每个进程进行运行时间记录、选择合适的下一个进程、通过schedule函数进入调度,在调度器内进行进程的睡眠和唤醒
5、进程切换:正常进程的上下文切换是通过调度算法进行的,但是也会突然有优先级高的进程出现,例如有中断信号产生,就会出现进程抢占。
6、进程抢占:分为用户抢占和内核抢占,用户抢占是进程从内核返回用户空间时被其他进程抢占;内核抢占是没有锁的进程可被抢占
内核通信同步机制:
1、用户空间和内核空间通信主要是通过系统调用
2、内核的同步方法:原子操作、自旋锁、信号量、互斥体、顺序锁
3、原子操作:其他同步方法的基础;单步执行一个进程
自旋锁:就是一次只有一个线程能够持有自旋锁其他线程只能忙循环等待自旋锁开启
读——写自旋锁:分为读锁(可共享)和写锁(类似于自旋锁)
信号量:在加锁时间较长或者加锁期间会睡眠时使用,是个睡眠锁,等待开锁期间任务进入睡眠状态
读——写信号量:类似于读——写自旋锁,它可以动态的将获取的写锁转换位读锁
内存分配的管理方式:内核把物理页作为内存管理的基本单位
1、连续分配方式:单一连续分配、固定分区分配、动态分区分配和动态重定位分区分配。
2、离散分配方式:以页位基本分配单位:分页存储管理方式:提高内存利用率
以段为基本分配方式:分段存储管理方式:满足用户需求
先将用户程序分成若干个段,再把每个段分成若干个页:段页式存储管理方式
中断及下半部机制:中断就是一个电信号,当处理器收到这个信号时,内核就会执行中断处理程序,每个设备都有一个中断处理程序。
1、上下半部:因为要求系统既要快速响应中断,又要快速完成中断处理程序,所以将中断分为两部分
2、每个中断都有一个特定的中断号,所以驱动程序需要注册中断号
3、下半部主要是执行与中断处理程序相关的但则不需要中断处理程序去执行的工作
内核的数据结构:链表,队列,映射,二叉树
1、链表一般分单向、双向、循环三类,基本操作有增删改查
2、队列最主要的特性是先进先出,队列的创建和重置和撤销、数据的推入和摘取都有相应的函数
3、映射