目录
1、线程以什么样的形式存储
操作系统会专门开辟一块物理内存。这块内存会当必须在物理内存的程序片段和数据。
处理器切换线程时,操作系统专门的线程管理模块,会将寄存器数据全部保存到对应线程数据结构中。这个数据集就在这块物理内存上。
2、读写锁
读写锁(readers-writer lock),看英文可以顾名思义,在执行加锁操作时需要额外表明读写意图,复数读者之间并不互斥,而写者则要求与任何人互斥。读写锁不需要特殊支持就可以直接用之前提到的几个东西实现,比如可以直接用两个 spinlock 或者两个 mutex 实现:
void 以读者身份加锁(rwlock) {
加锁(rwlock.保护当前读者数量的锁);
rwlock.当前读者数量 += 1;
if (rwlock.当前读者数量 == 1) {
加锁(rwlock.保护写操作的锁);
}
解锁(rwlock.保护当前读者数量的锁);
}
void 以读者身份解锁(rwlock) {
加锁(rwlock.保护当前读者数量的锁);
rwlock.当前读者数量 -= 1;
if (rwlock.当前读者数量 == 0) {
解锁(rwlock.保护写操作的锁);
}
解锁(rwlock.保护当前读者数量的锁);
}
void 以写者身份加锁(rwlock) {
加锁(rwlock.保护写操作的锁);
}
void 以写者身份解锁(rwlock) {
解锁(rwlock.保护写操作的锁);
}
如果整个场景中只有一个读者、一个写者,那么其实可以等价于直接使用互斥器。不过由于读写锁需要额外记录读者数量,花销要大一点。
你可以认为读写锁是针对某种特定情景的「优化」。但个人还是建议忘掉读写锁,直接用互斥器。
3、作业和指令有什么区别
进程,最基本的活动。
指令,实现一个基本功能活动的的代码(符号表示)。
程序,实现一个完整功能活动的指令集合。
作业,实现一组完整功能活动的程序集合。
4、BIOS是什么
首先要知道的是,BIOS 其实是一个英文缩略词,即 “Basic Input Output System” 四个单词的首字母组合,中文直译为“基本输入输出系统”,是一组固化到计算机内主板上一个 ROM 芯片上的程序。顾名思义,它保存着计算机最重要的基本输入输出的程序,还包括开机后自检程序和系统自启动程序。除此以外,它还可从 CMOS 中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
5、操作系统的引导
①激活CPU
②加载带有操作系统的硬盘(BIOS读取启动顺序)
③加载主引导记录(MBR,最后两字节是55AAH)
④加载硬盘分区表(DPT)
⑤加载硬盘活动分区表(分区首字节为0X80H)
⑥加载分区引导记录(PBR)
⑦加载启动管理器
6、磁盘和内存
内存和磁盘都是计算机中的存储器,都具有存储功能,属于存储设备。在计算机中,磁盘和内存是相互配合共同作业的。
区别:
1、内存是一种高速,造价昂贵的存储设备;而磁盘速度较慢、造价低廉。
2、内存属于内部存储设备,磁盘属于外部存储设备。
3、内存是通过电流来实现存储;磁盘是通过磁记录来实现存储。所以电脑断电后,内存中的数据会丢失,而磁盘中的数据可以长久保留。
7、外存和内存的存储
硬盘属于外存。
外存:外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器断电后仍然能保存数据。
内存:也被称为内存储器和主存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。