并发编程---操作系统

Posted Mr。yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并发编程---操作系统相关的知识,希望对你有一定的参考价值。

操作系统

操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。操作系统所处的位置如图

 

1.操作系统的功能

1.隐藏了丑陋的硬件调用接口,为应用程序员提供调用硬件资源的(系统调用接口)。

2.将应用程序对硬件资源的竞态请求变得有序化。

2.计算机的发展历程

1.1940-1955(第一代计算机)真空管和穿孔卡片,没有操作系统,没有编程语言。优点:程序员可以独享资源。缺点:在一段时间内只有一个人使用。
2.1955-1965(第二代计算机)晶体管和批处理系统 优点:批处理,节省了时间。 缺点:人为控制,影响了程序的开发效率

 

3.1965-1980(第二代计算机)集成电路芯片和多道程序设计,仍然是批处理

多道技术

多道技术的背景:单核情况下产生并发

空间上的复用:内存中同时有多道程序。暴风,word,音乐,都在内存中,物理层面上,保证多个程序的内存是相互隔离的。

时间上的复用:

  • 复制一个cpu的时间片,cpu轮流执行暴风,word,音乐,在哪个软件进行io阻塞的时候,cpu就离开这个软件,去执行下一个。
  • cpu来回切(速度非常快,一个时间cpu只能运行一个),切走之前,需要保存状态,下次回来,接着运行。
  • 一个程序占用cpu时间过长,cpu会切,即使只有一个cpu,给人的感觉,机器上能跑多个程序。不能提升cpu运行效率。反而会降低。

并发和并行

并发:只是看起来同时运行,单核

并行:真正意义的同时运行,多核,可以同时运行多个进程,如果进程数大于CPU的数量,就等待

已被分配CPU的进程遇到io,或者进程运行过长,进程优先级,都会让操作系统把进程的CPU拿走。之后随机分配将CPU给进程。

以上是关于并发编程---操作系统的主要内容,如果未能解决你的问题,请参考以下文章

Go并发编程之美-CAS操作

python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点

python下的并发编程

高并发编程-01-并发编程的发展历史

Go语言学习之旅--并发编程

Go语言学习之旅--并发编程