进程和线程
1.进程和线程的区别(烂大街的问题
进程是资源调度基本单位,线程是独立调度的基本单位
线程之间可以通过读写同一进程的数据进行通信而进程之间的通信需要借助IPC
进程的创建和撤销系统的开销相对而言比较大涉及到内存空间I/O设备等系统资源的分配和回收
进程的切换的时候涉及到当前进程CPU环境的保存和新进程CPU环境的创建,线程的切换只需要保存配置少量的寄存器内容
2.线程的状态
-->就绪:等待cpu资源
-->执行:
-->阻塞:缺少资源,等待资源,
java的线程状态是:新建 就绪 执行 阻塞 死亡
3.进程间通信方式
管道 消息队列 信号量 共享内存 (信号量用来同步对共享存储的访问),套接字(不同机器间进程通信)
4. 线程间通信方式
消息队列、全局变量
5. 无名管道和有名管道的区别
无名管道只是给父子进程和兄弟进程之间的共享信息的
有名管道的使用类似于文件的读取,可以给所有进程之间做信息交流,但与文件读取不同的是,被读过的数据就会消失。
6. 进程调度算法
1.批处理系统:没有太多的用户交互 主要目的是吞吐量和周转时间
先来先服务,短作业优先,最短剩余时间优先
2.交互式系统:很多用户交互 目标是快速地进行响应
时间片轮转调度 优先级调度 多级反馈队列(时间片轮转调度算法+优先级调度算法)
tips:这里强调一下如何判断是不是抢占式,如果抢占的理由是进程之间的差别那么就是抢占式,如果是时间片这种原因那就是非抢占式
7.虚存大小必须同时满足
1.虚存的大小 ≤ 内存容量和外存容量之和。
2.虚存的大小 ≤ 计算机的地址位数能容纳的最大容量
linux
如何在命令行查看一台linux机器的CPU、 cat /proc/cpuinfo
SWAP分区信息、 cat /proc/swaps
硬盘信息? df -lh