操作系统的面经

1.线程和进程的区别
(1)从功能来说:
线程:是操作系统的任务调度和执行的基本单位
进程:是资源分配的基本单位
(2)从构成来说
进程:内部含有线程和逻辑内存(进程间相互独立)
线程:栈(存放方法的参数,局部变量等),PC(下一条指令的地址,指向进程里的逻辑内存)
所以说:一个进程中有一个或多个线程
(3)从开销来说:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。

2.程序和进程的区别
程序:程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。
进程:它是程序在某个数据集上的执行,进程是一个动态的实体。
总结:运行的程序至少有一个进程

3.操作系统的储存分为哪几部分?
硬盘,内存和CPU中的缓存和寄存器
在这里插入图片描述
4.操作系统如何进行寻址操作的呢
首先根据指针指针访问进程中的逻辑地址,但逻辑地址是虚拟的,需要我们把它解析成他们在物理内存中的地址(也可能不在物理内存中,可能是操作系统虚拟出的内存,虚拟内存以分页的形式存放在物理内存中),最后找到后拿给CPU的寄存器即可
在这里插入图片描述
5.进程间的通信方式
(1)共享内存:顾名思义,共享内存就是两个进程同时共享一块内存,然后在这块内存上的数据可以共同修改和读取,达到通信的目的
(2)管道通信:用于连接一个读进程和写进程,实现进程之间通信的一种共享文件
(3)消息队列:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识
(4)套接字:套接字是网络编程的api,通过套接字可以不同的机器间的进程进行通信
(5)信号:操作系统通过信号来通知进程系统中发生了某种预先规定好的事件

6.线程同步的方式:
(1)互斥量 Synchronized/Lock:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问
(2)信号量 Semphare:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量
(3)事件(信号),Wait/Notify:通过通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作

7.进程的三种基本状态
(1)运行状态:正在处理机上运行的状态
(2)就绪状态:进程已经获得了除处理机之外的所有必要资源,只要获得处理机就可以运行的状态
(3)阻塞状态:当进程由于等待输入输出操作或某个同步事件而暂停运行时

8.线程的六种基本状态:
(1)初始(NEW):新创建了一个线程对象,但还没有调用start()方法。
(2)运行(RUNNABLE):**Java线程中将就绪(ready)和运行中(running)两种状态笼统的成为“运行”。**线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得cpu 时间片后变为运行中状态(running)。
(3)阻塞(BLOCKED):线程阻塞于锁。
(4)等待(WAITING):进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断)。
(5)超时等待(TIME_WAITING):该状态不同于WAITING,它可以在指定的时间内自行返回。
(6)终止(TERMINATED):表示该线程已经执行完毕。

9.CPU的调度算法有哪些
(1)先来先服务(不分割,先来的先做)
(2)短作业优先(不分割,运行完当前的后找最短的执行)
(3)时间片轮转(设定一个时间片的大小,然后把任务分成n部分,选等的久的)

10.死锁的定义及产生条件
定义:死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。
产生条件:
(1)互斥条件:一段时间内某资源只能由一个进程占有
(2)请求和保持:进程已经占有了至少一个资源,但又提出了新的资源要求,而该资源已经被其他进程占有,此时进程阻塞,但对已经获得的资源保持不放
(3)不可抢占:进程已经获得了资源,在他使用完之前不能被剥夺,只能他使用完后释放
(4)环路条件:存在一个进程与资源的环形链,在该链中,每个进程都在等待一个被占用的资源

未完待续…以后发现重要的继续补充

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值