计算机-常识-操作系统

计算机-常识-操作系统

1.操作系统四大特点

1. 并发
2. 共享
3. 虚拟
4. 异步

2.操作系统基本功能

1. 进程管理
    1.1 进程:cpu资源分配的基本单位。主要构成进程控制快(PCB),创建撤销进程都是对PCB的操作
    1.2 线程:cpu调度的基本单位。一个进程包含多个线程
    1.3 进程状态切换 就绪 运行 阻塞
    1.4 进程调度算法
        批处理系统(先来先服务,短作业有限,最短剩余时间优先)
        交互式系统 (时间片轮转,优先级调度,多级反馈)
        实时系统
    1.5 进程同步
        临界区
        同步与互斥
        信号量
        管程
    1.6 生产者与消费者
    1.7 哲学家就餐(死锁) 预分配
        互斥
        占有且申请
        不可抢占
        循环等待
2. 文件管理
    文件读写,保护
3. 内存管理 (内存分配,映射)
    3.1 页面置换算法
    3.2 分段
    3.3 分页
4. 设备管理
    完成用户io请求,方便用户使用设备

3.生产者与消费者

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#no1. 协程方式
def product():
shop=0
while shop<5:
shop=shop+1
print("生产了一个商品shop:"+str(shop))
yield shop

def constorm(t):
try:
while True:
shop=t.send(None)
print("消费了一个商品:"+str(shop))
except StopIteration as e:
pass

#no2. 多线程
import threading
from queue import Queue
def product(que: Queue):
while True:
shop="new shop"
que.put(shop)
print("procuce :"+shop)


def constorm(que: Queue):
while True:
shop=que.get()
print("消费了一个商品:"+shop)

que=Queue(maxsize=5)
t1=threading.Thread(target=product,args=(que,))
t2=threading.Thread(target=product,args=(que,))
t1.start()
t2.start()

t3=threading.Thread(target=constorm,args=(que,))
t4=threading.Thread(target=constorm,args=(que,))
t3.start()
t4.start()

4.死锁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import threading
import time

lock1=threading.Lock()
lock2=threading.Lock()


def people1():
while True:
lock1.acquire()
print("people1 拿到左边筷子")
time.sleep(1)

lock2.acquire()
print("people1 拿到右边筷子")

lock2.release()
lock1.release()
print("people 吃完了放筷子")

def people2():
while True:
lock2.acquire()
print("people2 拿到右边筷子")
time.sleep(1)

lock1.acquire()
print("people2 拿到左边筷子")

lock1.release()
lock2.release()
print("people 吃完了放筷子")

t1=threading.Thread(target=people1)
t2=threading.Thread(target=people2)

t1.start()
t2.start()