同步异步与操作系统

同步异步与操作系统

同步与异步,阻塞与非阻塞

  • 同步与异步
  1. 函数或方法被调用的时候,调用者是否得到最终结果
    • 直接得到最终结果的,就是同步调用。
    • 不直接得到最终结果的,就是异步调用。
  • 阻塞、非阻塞
  1. 函数或方法调用的时候,是否立刻返回。
    • 立刻返回就是非阻塞调用
    • 不立刻返回就是阻塞调用
  • 区别

    1. 同步、异步,与阻塞、非阻塞不相关
    2. 同步、异步强调的是,是否得到(最终的)结果
    3. 阻塞、非阻塞强调是时间,是否等待。
  • 同步与异步区别在于:调用则是否得到了想要的最终结果。

    1. 同步就是一直要执行到返回最终结果;
    2. 异步就是直接返回了,但是返回的补是最终结果。调用者不能通过这种调用得到结果,以后可以通过被调用者提供的某种方式(被调用者通知调用者、调用者反复查询、回调),来取回最终结果。
  • 阻塞与非阻塞的区别在于:调用者是否还能干其他事情。

    1. 阻塞,调用者就只能等待,无法做其他事情。
    2. 非阻塞,调用者可以先去做其他事情,不用一直等到结果返回。
  • 联系

    1. 同步阻塞,我啥事不干,就等你打饭打给我。打到饭是结果,而且我啥事不干一直等,同步加阻塞。
    2. 同步非阻塞,我等着你打饭给我,饭没好,我不等,但是我无事可做,反复看饭好了没有。打饭是结果,但是我不 一直等。
    3. 异步阻塞,我要打饭,你说等叫号,并没有返回饭给我,我啥事不干,就干等着饭好了你叫我。例如,取了号什么 不干就等叫自己的号
    4. 异步非阻塞,我要打饭,你给我号,你说等叫号,并没有返回饭给我,我在旁边看电视、玩手机,饭打好了叫我。

操作系统知识

  • 在X86之前,CPU工作在实模式下,之后,开始支持保护模式,对内存进行了划分。
  • X86 CPU有4种工作级别:
    1. Ring0级,可以执行特权指令,可以访问所有级别的数据,可以访问IO设备等
    2. Ring3级,级别最低,只能访问本级别的数据
    • 内核代码运行在Ring0,用户代码运行在Ring3

现代操作系统采用虚拟存储器,理论上,对于32位系统来说,进程对虚拟内存地址的内存寻址空间为4G ( 2 32 ) (2^{32}) 。64位操作系统理论上最大内存寻址空间 2 64 2^{64}
操作系统中,内核程序独立且运行在较高的特权级别上,它们驻留在被保护的内存空间上,拥有访问硬件设备的所有权限,这部分内存称为内核空间(内核态,最高地址1G)。
普通应用程序运行在用户空间(用户态)。
应用程序想访问某些硬件资源就需要通过操作系统提供的系统调用,系统调用可以使用特权指令运行在内核空间, 此时进程陷入内核态运行。系统调用完成,进程将回到用户态执行用户空间代码。

system_001

猜你喜欢

转载自blog.csdn.net/u013008795/article/details/93381140