并发编程---操作系统
操作系统
操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。操作系统所处的位置如图
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给进程。