操作系统的四个特征分别是:并发、共享、虚拟、异步。操作系统和程序并发是一起诞生的。并发性和共享性互为存在条件。
1.并发
概念:是指两个或多个事件在同一时间间隔内发生。操作系统的并发性是指计算机系统中同时存在多个运行的程序,因此它具体处理和调度多个程序同时执行的能力。操作系统的并发是通过分时实现的。
并发和并行
并发:在多道程序环境下,一段时间内,宏观上有多道程序在同时执行,而在每个时刻,单处理机环境下实际仅能有一道程序执行,微观上这些程序仍是分时交替执行。
并行:是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。并行性需要有相关硬件的支持,如多流水线或多处理机硬件环境。
以下是一个简单的多线程程序,用于同时执行两个任务(模拟并发的场景):
import threading
def task1():
for i in range(5):
print("Task 1 is running")
time.sleep(1)
def task2():
for i in range(5):
print("Task 2 is running")
time.sleep(1)
thread1 = threading.Thread(target=task1)
thread2 = threading.Thread(target=task2)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print("Both tasks have completed!")
在这个例子中,我们定义了两个函数`task1`和`task2`,分别模拟两个任务。我们使用`threading.Thread`类创建了两个线程,并将这两个函数分别作为线程的目标。
每个线程启动后,`task1`和`task2`会同时运行,并且每个任务间隔1秒钟运行一次。主线程等待两个线程完成后,打印出“Both tasks have completed!”。
2.共享
概念:指系统中的资源可供内存中多个并发执行的进程使用。
- 互斥共享方式:某些资源在一段时间内只允许一个进程访问该资源(其他进程需等待该进程访问完并释放才能访问)
- 同时访问方式:一段时间内允许多个进程对资源进行访问(微观上可能是交替地对该资源进行访问)
3.虚拟
概念:一个物理上的实体变为若干逻辑上的对应物,这种技术也被称为虚拟技术。
4.异步
概念:由于资源有限,进程的执行并不是一贯到底的,而是走走停停,它以不可预知的速度向前进。