Linux操作系统
- 1.操作系统特点
- 2.什么是进程
- 3.进程
- 4.进程与线程的区别
- 5. 进程状态转换图
- 6. 进程的创建过程?需要哪些函数?需要哪些数据结构?
- 7. 进程创建子进程,fork详解
- 8. 子进程和父进程怎么通信?
- 9. 进程和作业的区别?
- 10.死锁是什么?必要条件?如何解决?
- 11.鸵鸟策略
- 12.银行家算法
- 13.进程间通信方式有几种,他们之间的区别是什么?
- 14.线程同步的方式?怎么用?
- △15.页和段的区别?
- 16.孤儿进程和僵尸进程的区别?怎么避免这两类进程?守护进程?
- 17.守护进程是什么?怎么实现?
- 18.线程和进程的区别?线程共享的资源是什么?
- 19.线程比进程具有哪些优势?
- 20.什么时候用多进程?什么时候用多线程?
- △21.协程是什么?
- 22.递归锁?
- 23.用户态到内核态的转化原理?
- △24.中断的实现与作用,中断的实现过程?
- 25.系统中断是什么,用户态和内核态的区别
- 26.CPU中断
- △27.执行一个系统调用时,OS发生的过程,越详细越好
- 28.函数调用和系统调用的区别?
- 29.虚拟内存?使用虚拟内存的优点?什么是虚拟地址空间?
- 30.线程安全?如何实现?
- △32.linux文件系统
- 33.常见的IO模型,五种?异步IO应用场景?有什么缺点?
- △34.IO复用的原理?零拷贝?三个函数?epoll 的 LT 和 ET 模式的理解。
- 35.Linux是如何避免内存碎片的
- 36.递归的原理是啥?递归中遇到栈溢出怎么解决
- 37.++i是否是原子操作
- △38.缺页中断,页表寻址
- 39.LRU的实现
- 40.内存分区
- △41.伙伴系统相关
- 42.I/O控制方式
- △43.Spooling技术
- 44.通道技术
- 45.共享内存的实现
- 46.计一个线程池,内存池
- 1.Inode节点
- 2.Linux软连接、硬链接,删除了软连接的源文件软连接可用?
- 3.Linux系统应用程序的内存空间是怎么分配的,用户空间多大,内核空间多大?
- 4.Linux的共享内存如何实现
- 5.文件处理grep,awk,sed这三个命令必知必会
- 6.查询进程占用CPU的命令
- 7.一个程序从开始运行到结束的完整过程
- 8.一般情况下在Linux/windows平台下栈空间的大小
- 9.Linux重定向
- 10.Linux常用命令
1.操作系统特点
并发性、共享性、虚拟性、不确定性。
2.什么是进程
- 进程是指在系统中正在运行的一个应用程序,程序一旦运行就是进程;
- 进程可以认为是程序执行的一个实例,进程是系统进行资源分配的最小单位,且每个进程拥有独立的地址空间;
- 一个进程无法直接访问另一个进程的变量和数据结构,如果希望一个进程去访问另一个进程的资源,需要使用进程间的通信,比如:管道、消息队列等
- 线程是进程的一个实体,是进程的一条执行路径;比进程更小的独立运行的基本单位,线程也被称为轻量级进程,一个程序至少有一个进程,一个进程至少有一个线程;
3.进程
进程是程序的一次执行,该程序可以与其他程序并发执行;
进程有运行、阻塞、就绪三个基本状态;
进程调度算法:先来先服务调度算法、短作业优先调度算法、非抢占式优先级调度算法、抢占式优先级调度算法、高响应比优先调度算法、时间片轮转法调度算法;
4.进程与线程的区别
- 同一进程的线程共享本进程的地址空间,而进程