1. 操作系统基本概念
与硬件部分交互, 为包含在硬件平台的所有底层可编程部件提供服务.
为运行在计算机系统上的应用程序(即用户程序)提供执行环境.
用户态与内核态
进程: 程序执行时的一个实例/执行上下文
内核体系结构
大部分Unix内核是单块结构
Unix文件系统
硬链接 1. 不允许创建目录硬链接 2. 只能在同一文件系统下创建
软连接 没有硬链接的限制
文件类型
普通文件
目录
符号链接
面向块的设备文件
面向字符的设备文件
管道和命名管道
套接字
文件描述符与索引节点
POSIX标准属性:
文件类型
与文件相关的硬链接个数
以字节为单位的文件长度
设备标识符
在文件系统中标识文件的索引节点号
文件拥有者的UID
文件的用户组ID
几个时间戳, 表示索引节点状态改变的时间, 最后访问时间及最后修改时间
访问权限和文件模式
访问权限和文件模式
文件的潜在用户分为三种类型:
作为文件所有者的用户
同组用户, 不包括所有者
所有剩下的用户(其他)
附加标记: suid, sgid, sticky
进程/内核模式
CPU即可以运行在用户态也可以运行在内核态
内核线程(特权进程)
- 以内核态运行在内核地址空间
- 不与用户直接交互
- 在系统启动时创建, 直到系统关闭
激活内核例程方式
进程调用系统调用.
正在执行进程的CPU发出一个异常信号.
外围设备向CPU发送一个中断信号.
内核线程被执行.
进程实现
每个进程由进程描述符标识
暂停进程: 添加几个相关处理器内容保存到进程描述符.
程序计数器(PC)和栈指针(SP)寄存器
通用寄存器
浮点寄存器
包含CPU状态信息的处理器控制寄存器
用来跟踪进程对RAM访问的内存管理寄存器
可重入内核
内核控制路径的交错执行
图!!!
进程地址空间
用户态: 数据区, 代码区, 私有栈
内核态: 数据区, 代码区, 私有栈
备注: 用户态和内核态的私有栈是独立的.
每个进程访问私有地址, 但是有时候进程间也共享部分地址空间.
一个程序多个用户使用, 程序只被内存装载内存一次, 其指令由所有哦使用它的用户共享, 每个用户独立数据.
进程间也有共享部分地址空间, 用于进程间通信.
同步和临界区
非抢占式内核
禁止中断
信号量
自旋锁
避免死锁
信号和进程间通信
进程管理
僵尸进程
进程组和登录会话
内存管理
虚拟内存
随机访问存储器(RAM)的使用
内核内存分配器
进程虚拟地址空间处理
高速缓存
设备驱动程序
版本控制
| Version | Action | Time |
|---|---|---|
| 1.0 | Init | 2019-08-25 |