一、基础

作者: 小虾米不爱吃虾 | 来源:发表于2016-07-14 14:40 被阅读12次
    1. 计算机关键的硬件

    CPU、内存、I/O控制芯片

    2. SMP与多核

    SMP: Symmetrical Multi-Processing, 对称多处理器, 指具有多个CPU
    多核: 单个CPU, 具有多个核心
    从程序开发的角度来看, SMP和多核可以看做是同一个概念

    3. 内存

    程序直接使用物理内存存在的弊端:

    • 地址空间不隔离
    • 内存使用效率低
    • 程序运行的地址不确定

    内存管理常用的技术

    • 虚拟地址
    • 分段
    • 分页

    虚拟地址空间(Virtual Address)

    • 每个程序都有独立的虚拟地址空间,32位的系统,虚拟地址空间为0x00000000 - 0xFFFFFFFF
    • 虚拟地址空间同物理内存空间一样,被分页管理,每一页的大小如4kB
    • 虚拟地址空间(虚拟内存)中的页有三种状态:
        映射到物理页面
        位于磁盘中
        未使用的状态
    4. 线程

    标准线程:CPU的基本调度单位

    • 一个进程可包含有多个线程
    • 线程之间、线程和进程之间共享的数据有
        进程的虚拟地址空间(代码段、数据段、堆等)、进程级的资源(打开的文件、信号)、进程的环境(用户id和组id)
    • 线程独有的
        线程id、上下文(寄存器、PC)、errno变量、调度优先级

    Linux线程:从内核的角度来看,Linux进程和线程都是 任务(Task),并没有本质区别

    • Linux进程和线程的创建过程为:fork() -> exec() -> clone()
        clone()函数的flag参数决定了共享哪些资源,也即创建的是进程还是线程

    进程和线程的区别

    进程——资源分配的最小单位,线程——程序执行的最小单位


    线程同步的方法

    • 互斥量(Mutex)
    • 信号量(Semaphore)
    • 条件变量
    • 读写锁

    相关文章

      网友评论

        本文标题:一、基础

        本文链接:https://www.haomeiwen.com/subject/tbmsjttx.html