计算机操作系统
PauperGuy
God
展开
-
计算机操作系统核心知识点总结&面试笔试要点
操作系统之基础篇一、 操作系统概述 1. 操作系统的演进 无操作系统:人工操作,用户独占,CPU等待人工操作,资源利用率很低。 批处理系统:批量输入任务,无需等待人工操作,资源利用率提升,提出多道程序设计。 分时系统:人-机交互,多用户共享,资源利用率提升,及时调试程序。 关于多道程序设计:是指在计算机内存中同时存放多个程序,多道程序在计算机的管理程序之下相互穿插运行。 2....原创 2019-08-14 22:00:41 · 109412 阅读 · 12 评论 -
进程同步之生产者-消费者问题(C++)
问题描述有一群生产者进程在生产产品,并将这些产品提供给消费者进程进行消费,生产者进程和消费者进程可以并发执行,在两者之间设置了一个具有n个缓冲区的缓冲池,生产者进程需要将所生产的产品放到缓冲区中(+1操作),消费者进程可以从缓冲区取走产品消费(-1操作)。(6-5-0207)产生问题当两者并发执行时可能出差错,如下图:(6-5-0627)当执行生产者+1和消费者-1操作之后,缓冲区的值...原创 2019-08-15 09:43:11 · 23841 阅读 · 7 评论 -
操作系统之死锁的避免-银行家算法详解
1.银行家算法中的数据结构(1) 可利用资源向量Available。这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。如果Available[j]=K,则表示系统中现有Rj类资源K个。 (2) 最大需求矩阵Max。这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的...原创 2019-08-15 16:06:27 · 45626 阅读 · 18 评论 -
实现线程安全的队列Queue(Python)
关于队列 用于存放多个元素,是存放各种元素的“池”。实现的基本功能 获取当前队列元素数量-->往队列放入元素-->往队列取出元素。注意 队列可能有多个线程同时操作,因此需要保证线程安全,如下两种情况:具体实现# -*- encoding=utf-8 -*-import timeimport threa...原创 2019-08-18 09:52:11 · 21935 阅读 · 1 评论 -
实现基本任务对象Task(Python)
任务处理逻辑任务参数 任务唯一标记(UUID) 任务具体的执行逻辑具体实现(Python)# -*- encoding=utf-8 -*-import uuidimport threading# 基本任务对象class Task: def __init__(self, func, *args, **kwargs): # 任务具体逻辑,通过函...原创 2019-08-18 10:29:28 · 20353 阅读 · 1 评论 -
实现任务处理线程ProcessThread和实现任务处理线程池Pool(Python)
关于ProcessThread任务处理线程需要不断地从任务队列里取任务执行; 任务处理线程需要有一个标记,标记线程什么时候应该停止。Pool存放多个任务处理线程; 负责多个线程的启停; 管理向线程池的提交任务,下发给线程去执行。实现的基本功能(过程)ProcessThread基本属性(任务队列、标记) 线程执行的逻辑(run) 线程停止(stop)Pool...原创 2019-08-18 11:00:27 · 19472 阅读 · 1 评论 -
实现异步任务处理AsyncTask(Python)
关于 给任务添加一个标记,任务完成后,则标记为完成;任务完成时可直接获取任务运行结果;任务未完成时,获取任务结果,会阻塞获取线程。主要实现的函数设置运行结果(set_result) 获取运行结果(get_result)具体实现# -*- encoding=utf-8 -*-import timefrom operate_system import tas...原创 2019-08-18 12:30:33 · 20803 阅读 · 2 评论