1、进程管理
概括:进程的创建、销毁,调度等功能
进程中的中断和不可中断指的是:是否被信号打断!
进程的四个状态分别是:
- 就绪态
- 执行态
- 阻塞态
- 死亡态
关系如下图(就这功底了,凑活看)
注:阻塞态无法直接进入死亡态
从运行状态怎样改到可中断的等待状态?和不可中断等待态?
操作系统开始会对每一个进程分配一个时间片,当进程里面写了sleep(睡眠)函数,进程由运行态进入到休眠态,但是此时CPU不可能等着。有两个方法:
1、根据时间片,CPU自动跳转;
2、或者说自己在程序里写能引起CPU调度的代码。
2、文件管理
通过文件系统ext2/ext3/ext4 yaff jiffs等来组织管理文件
3、网络管理
通过网络协议栈(OSI,TCP)对数据进行封装和拆解的过程。
数据的发送和接收是通过网卡驱动完成的,网卡驱动不会产生文件(在Linux系统的dev下面没有相应文件),所以不能用open等函数,而是用socket。
4、内存管理
通过内存管理器对用户空间和内核空间内存的申请和释放。
5、设备管理
设备驱动的管理(驱动工程师)
字符设备驱动
led、鼠标、键盘、lcd、touchscreen(触摸屏)等
特点:
1、按照字节为单位进行访问,顺序访问(有先后);
2、会创建设备文件,通过open、read、write、close来访问。
块设备驱动
camera、u盘、emmc等
特点:
1、按照块(512字节)(扇区)访问,可以顺序也可无序访问;
2、会创建设备文件,通过open、read、write、close来访问。
网卡设备驱动(光猫)
特点:按照网络数据包来收发