1、一个计算机的组成部分
硬件、内核(kernel)、库(库调用)、(系统调用)、应用程序
系统调用的意思就是把应用程序的请求传递给内核,调用相应的内核函数完成所需的处理,将处理的结果返回给函数
2、CPU的指令
(1)特权指令:只有内核才能够运行,完成硬件的一些工作
(2)用户指令:用户程序使用的指令,用户要想使用特权指令,需通过系统调用
3、用户空间和内核空间
linux操作系统和驱动程序运行在内核空间,而应用程序运行在用户空间
4、内核的功用
我 们所说的内核模式就是整个操作系统在进行下面这些功能的运行
(1)进程管理 (2)文件系统 (3)网络功能 (4)驱动管理 (5)安全功能
进程
1、process进程
含义:通常进程就是脚本读取文件的一个副本所运行的一个程序
存在生命周期:从创建到结束、
2、进程创建
当一个系统启动时,先把内核 --》CPU上执行,内核运行完后--》由内核负责启动进程--》创建出第一个进程,通常是init进程,内核创建完init进程后 --》内核空间没有了,用户空间创造出来了 --》然后除了特权指令,都由init来创建进其他用户进程。
3、init
1)进程都由其父进程创建,主要两个步骤是fork()和clone()
2)进程优先级
前提:进程是要执行的一个活动,主要是由CPU来执行,当有多个进程时,就有一个处理先后的过程。
0-139 --》1-99 :实时优先级,越大越优先 --》 100-139:静态优先级,越小越优先
NICE值--》 用户用过调整进程的NICE值来改变进程的100-139的优先级 --》-20-19,:对应的100-139
3)进程内存的理解
1、线性地址空间
进程以为自己能够占用的内存空间,进程只能够访问线性的,而不能访问物理的
2. MMU :Memory Mangement
Unit: 内存管理单元,当一个进程被加载至cpu上运行时--》把它的映射关系放在MMU这个芯片上,负责完成地址的实时转换(即把虚拟地质转换为物理地址,分配给进程所需要的内存使用)
3、假设物理内存(是主机内存条的内存)只有一个,CPU只有一颗,当前系统运行多个进程,进程的执行是先内存存数据和指令--》
再通过CPU进行执行,那么内存是怎样合理划分内存来存放多个进程的呢-- 》对于所有进程包括内存,不会直接访问硬件,而是通过内核来分配资源--》内核自己占用一定内存,剩下的给进程使用,内核把剩余内存切割成固定大小的片段
4、IPC:Inter Process Conmunication,进程间通信
a)同一主机上: signal:信号 --》shm:shared memmory,共享内存
b)不同主机上 rpc:remote process call,远程过程调用 --》socket:套接字
3)进程类型
1、守护进程:在系统引导过程中的启动的进程,与终端无关-- 2、用户进程:与终端相关,通过终端启动
4)进程的状态
运行态:running,有分给内存运行 --》 就绪态:ready,未分给内存 -- 》睡眠态:可中断:interruptable 不可中断:uninterruptable--》停止态:暂停于内存中,但不会被调度,除非手动启动之;stopped --》僵死态:zombie
5)进程的分类:
CPU-Bound :非交互型的,占用内存多--IO-Bound :交互型的