-
对称加密:加密和解密用的是同一个密码或者同一套逻辑的加密方式。
-
非对称加密:使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密。
-
硬链接:硬链接和源文件inode节点号相同,两者互为硬链接
-
软链接:软链接和源文件inode节点号不同,进而指向的块也不同,软链接指向的块中存放的是源文件的路径名,类似于快捷方式,存储着源文件的位置信息用于指向
-
为什么程序初始化时分配资源不会导致死锁?
- 初始分配资源量小
- 初始分配资源有序
- 初始分配采用一些策略保证不会死锁,如池资源技术
-
❤️产生死锁四必要条件❤️
- 互斥条件
- 请求与保持条件
- 不可剥夺条件
- 循环等待条件
-
线程的三种实现方式以及各自优缺点
-
用户级线程(User-Level Threads):用户级线程是完全由用户程序管理的线程,操作系统对其一无所知。
-
优点:
- 用户级线程的切换不需要内核介入,切换开销小。
- 允许各进程拥有自己的调度算法,良好的可扩展性
- 可利用的表空间和堆栈空间较内核级线程多
-
缺点:
- 一个用户级线程的阻塞将会引起整个进程的阻塞
- 一个进程中只能有一个用户级线程在运行
- 多核处理器上无法实现真正的并行执行,因为操作系统只看到单个线程。
-
-
内核级线程(Kernel-Level Threads):由操作系统内核直接支持和管理的线程。
-
优点:
- 阻塞一个线程不会影响整个进程,因为内核可以独立地调度其他线程。
- 可以实现真正的并行执行,因为每个线程都由操作系统内核调度。
-
缺点:
- 由内核参与调度,资源开销大
-
-
混合型线程(Hybrid Threads):结合了用户级线程和内核级线程的优点。每个用户级线程对应一个或多个内核级线程,用户级线程库负责线程的创建和调度,内核级线程由操作系统内核管理。
-
优点(两者优点都有):
- 线程切换开销小
- 可以利用操作系统的调度和资源管理功能,实现真正的并行执行
-
缺点:
-
需要同时管理用户级线程和内核级线程,增加了复杂性。
-
可能存在用户级线程和内核级线程之间的不匹配和不均衡。
-
-
-