1.说说存储类型
ROM:只读存储器。数据一旦被写入,就无法删除或修改的存储器。
RAM:随机存储器。与CPU进行数据交换的内部存储器,可以随时读写,速度很快。
SRAM:静态随机存储器。所谓静态是指,只要保持通电,里面的数据可以恒常保存,一旦断电,数据将消失。
DRAM:动态随机存储器。内部数据需要周期性更新。刷新充电一次,否则内部数据会消失。
2.说说常用的Linux命令。
man | 帮助命令 |
cd | 切换文件目录 |
makdir | 创建文件目录 |
pwd | 显示当前文件目录 |
cp | 复制文件 |
top | 显示操作系统信息,如进程,CPU占用率,内存大小 |
kill | 向进程发送终止信息 |
3.简述互斥锁机制。互斥锁与读写锁的区别。
互斥锁机制:mutex。用于保证在任一时刻都有一个线程访问该对象。如果获取锁的操作失败,线程会受阻,等待锁释放。
区别:①读写锁分读者和写者,互斥锁没有这种区分。
②互斥锁在同一时刻只允许一个线程访问该对象,无论读写;读写锁在同一时刻只允许一个写者,但是允许多个读者同时读该对象。
4.简述互斥锁与自旋锁的使用场景。
互斥锁主要应用在临界区持锁时间比较长的操作,如以下情况:
①临界区有IO操作。
②临界区代码比较复杂,循环量大。
③临界区竞争比较激烈。
④单核处理器。
自旋锁主要用在临界区持锁时间非常短,且CPU资源占有率不高的情况下。
5.公平锁与非公平锁。
公平锁:线程按照申请锁的顺序获取锁,所有的线程进入队列中排队,永远只有队列的第一个才能后渠道锁。
优点:每一个线程都能获取到资源,不会被饿死。
缺点:吞吐量下降,除了第一个线程,其它线程都会被阻塞,CPU唤醒被阻塞线程开销大。
非公平锁:多个线程尝试直接获取锁,如果获取不到锁,就进入队列,如果获取得到,就直接获取到锁。
优点:CPU不必唤醒所有线程,开销小;吞吐效率提高。
缺点:会导致在队列中的线程一直获取不到锁或者长时间获取不到锁而饿死。