计算机知识图谱——操作系统

计算机 ==>> 操作系统

操作系统

大部分计算机有两种运行模式:内核态用户态,软件中最基础的部分是操作系统,它运行在内核态中。操作系统具有硬件的访问权,可以执行机器能够运行的任何指令。软件的其余部分运行在用户态下。

Linux

指令符

  1. & 在指令后面加上&表示在后台执行

  2. && 使用&&分隔两个指令表示第一道指令执行完成后才会执行第二道指令

  3. | 使用|分隔两个指令表示第一道指令的输出作为第二道指令的输入

  4. || 使用||分隔两个指令表示第一道指令执行失败才会执行第二道指令

  5. ; 使用;分隔两个指令表示不管成功与否依次执行两个指令

  6. & 使用&分隔两个指令标识两个指令同时执行

  7. top

    • 第一行 时间 系统运行时间 登录系统的用户数 1分钟 5分钟 15分钟的负载情况(load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。)
    • 第二行 进程总数 运行中进程数 休眠中进程数 停止的进程数 僵尸进程数
    • 第三行 us — 用户空间占用CPU的百分比;sy — 内核空间占用CPU的百分比;ni — 改变过优先级的进程占用CPU的百分比;id — 空闲CPU百分比;wa — IO等待占用CPU的百分比;hi — 硬中断(Hardware IRQ)占用CPU的百分比;si — 软中断(Software Interrupts)占用CPU的百分比
    • 第四行 total - 物理内存总量;free - 空闲内存总量;used - 使用中内存总量;buffers/cache - 缓存的内存量
    • 第五行 total - 交换分区总量;free - 空闲交换分区;used - 使用中交换分区;avail Mem - 虚拟内存总量
    • 第六行 空行
    • 第七行 PID - 进程id;USER - 进程所有者;PR - 进程动态优先级;NI - 进程动态优先级;VIRT - 进程中使用的虚拟内存;VIRT - 进程使用的、未被换出的物理内存大小;SHR - 共享内存大小;R - 进程状态;%CPU - 上次更新到现在的CPU时间占用百分比;%MEM - 进程使用的物理内存百分比;TIME+ - 进程使用的CPU时间总计,单位1/100秒;COMMAND - 进程名称(命令名/命令行)

敲击键盘“1”,可监控每个逻辑CPU的状况

敲击键盘“d”,即可设置间隔刷新时间,默认是3秒

敲击键盘“b”,高亮显示当前运行进程

敲击键盘“x”,进程字段高亮

top默认的排序列是“%CPU”,通过”shift + >”或”shift + <”可以向右或左改变排序列

  1. htop

知识点

计算机硬件

包含了 5 个重要的组成部分:运算器、控制器、存储器、输入设备、输出设备。

进程和线程

进程是对正在运行中的程序的一个抽象,每个进程都有一个地址空间和多个控制线程。

进程间通信

信号
管道
共享内存
先入先出队列
消息队列
套接字

调度算法

先来先服务
最短作业优先
最短剩余时间优先
轮询调度
优先级调度
多级队列
最短进程优先
保证调度
彩票调度
公平分享调度

页面置换算法

最优页面置换算法

协程和线程