2021

69 阅读3分钟
  • 对称加密:加密和解密用的是同一个密码或者同一套逻辑的加密方式。

  • 非对称加密:使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密。

  • 硬链接:硬链接和源文件inode节点号相同,两者互为硬链接

  • 软链接:软链接和源文件inode节点号不同,进而指向的块也不同,软链接指向的块中存放的是源文件的路径名,类似于快捷方式,存储着源文件的位置信息用于指向

  • 为什么程序初始化时分配资源不会导致死锁?

    1. 初始分配资源量小
    2. 初始分配资源有序
    3. 初始分配采用一些策略保证不会死锁,如池资源技术
  • ❤️产生死锁四必要条件❤️

    1. 互斥条件
    2. 请求与保持条件
    3. 不可剥夺条件
    4. 循环等待条件
  • 线程的三种实现方式以及各自优缺点

    1. 用户级线程(User-Level Threads):用户级线程是完全由用户程序管理的线程,操作系统对其一无所知。

      • 优点:

        1. 用户级线程的切换不需要内核介入,切换开销小。
        2. 允许各进程拥有自己的调度算法,良好的可扩展性
        3. 可利用的表空间和堆栈空间较内核级线程多
      • 缺点:

        1. 一个用户级线程的阻塞将会引起整个进程的阻塞
        2. 一个进程中只能有一个用户级线程在运行
        3. 多核处理器上无法实现真正的并行执行,因为操作系统只看到单个线程。
    2. 内核级线程(Kernel-Level Threads):由操作系统内核直接支持和管理的线程。

      • 优点:

        1. 阻塞一个线程不会影响整个进程,因为内核可以独立地调度其他线程。
        2. 可以实现真正的并行执行,因为每个线程都由操作系统内核调度。
      • 缺点:

        1. 由内核参与调度,资源开销大
    3. 混合型线程(Hybrid Threads):结合了用户级线程和内核级线程的优点。每个用户级线程对应一个或多个内核级线程,用户级线程库负责线程的创建和调度,内核级线程由操作系统内核管理。

      • 优点(两者优点都有):

        1. 线程切换开销小
        2. 可以利用操作系统的调度和资源管理功能,实现真正的并行执行
      • 缺点:

        1. 需要同时管理用户级线程和内核级线程,增加了复杂性。

        2. 可能存在用户级线程和内核级线程之间的不匹配和不均衡。