操作系统的特点
并行和并发
进程、线程
多线程模型:一对一(一个用户级线程对一个内核级线程);多对一;多对多
进程/线程间通讯方式
线程通信
线程间通信的模型有两种:共享内存和消息传递
1.使用 volatile 关键字。多个线程同时监听一个变量,当这个变量发生变化的时候 ,线程能够感知并执行相应的业务。
2.使用 Object 类的 wait()/notify()。 wait/notify 必须配合 synchronized 使用,wait 方法释放锁,notify 方法不释放锁。wait 是指在一个已经进入了同步锁的线程内,让自己暂时让出同步锁,以便其他正在等待此锁的线程可以得到同步锁并运行,只有其他线程调用了notify()notify并不释放锁,只是告诉调用过wait()的线程可以去参与获得锁的竞争了,但不是马上得到锁,因为锁还在别人手里,别人还没释放,调用 wait() 的一个或多个线程就会解除 wait 状态,重新参与竞争对象锁,程序如果可以再次得到锁,就可以继续向下运行
进程调度算法
cpu调度资源的三种方式挂起就是先把进程放到外存,然后有资源了,再把它拿回来执行
进程/线程状态
线程锁(synchronized 关键字)
线程锁,它其实是为了保证【共享资源】安全,而出现的一个概念。我们要保证资源的安全,所以要把资源加锁,有人在用的时候锁死,不用的时候,开锁。
sleep()和wait()的区别?
sleep和wait都是让程序睡一会儿,两者区别呢是前者不会释放锁,后者会释放锁
详解信号量和互斥锁之间的区别和联系
死锁
内存管理
动态分区分配算法的几种算法
信号量是什么
信号量(semaphore)是操作系统用来解决并发中的互斥和同步问题的一种方法。