- 博客(12)
- 资源 (3)
- 问答 (15)
- 收藏
- 关注
原创 信号量和管程
希望阅读本文后的你,可以更好的理解OS中的信号量和管程。如果你有任何疑惑,欢迎指出,因为很有可能是我的理解错误或者笔误。文章目录0. 相关概念回顾1. 信号量(semaphore)0. 相关概念回顾在OS引入多线程后,程序的多任务并发功能得到了良好的支持,但同时也带来了问题,那就是多线程并发会导致一些共享的资源产生竞争问题(例如对共享数据区的数据进行操作),而在计算机中,操作这种共享资源的代...
2019-06-22 17:57:00 824 1
原创 POJ-3903-最长上升子序列
题目就不多说了,链接–> POJ-3903-最长上升子序列解法一这个题目用动态规划来做是没问题的,大家一般都会想到这种解法:DP[i]:表示下标从0到i的序列的最长上升子序列长度DP[i]:表示下标从0到i的序列的最长上升子序列长度DP[i]:表示下标从0到i的序列的最长上升子序列长度然后动态转移方程如下:记第i位前的所有位置为j(到时候要遍历的),如果sequence[i]&...
2019-06-18 21:12:56 776
原创 CPU调度
文章目录CPU调度基本概念调度算法评估准则调度算法1. 先来先服务算法(First Come First Service,FCFS)2. 短进程优先算法(Shortes Process Next,SPN)3. 最高响应比优先(Highest Response Ratio Next,HRRN)CPU调度基本概念进程切换进程切换即CPU资源在当前占用者之间的切换,也就是保存当前进程在PCB中...
2019-06-17 11:59:34 730
原创 Python 获取多线程返回值的两种方式
1. 通过复写Thread类,自定义一个get_result()方法from threading import Thread# _sum = 0def cal_sum(begin, end): # global _sum _sum = 0 for i in range(begin, end + 1): _sum += i return ...
2019-06-16 18:14:41 37577 5
转载 Python线程相关
目录一、threading 模块:对线程的处理二、Thread组件2-1 开启线程的方式一(函数)2-2 开启线程的方式二 (类)2-3 Thread 相关内置子方法 2-4 主进程等待新建线程实例2-5 线程共用创造进程内资源2-7...
2019-06-16 17:54:37 157
原创 select()实现I/O复用并发服务器
用select()模块,基于Python实现了一个简单的echo程序。服务端程序:import socketimport selectserv_socket = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)serv_socket.bind(("127.0.0.1", 4567))serv_socket.li...
2019-06-16 15:28:18 507
原创 OS进程控制
进程切换(上下文切换)所谓进程切换,或者说上下文切换指的是,暂停当前运行的进程,从运行态变为其他状态,然后OS调度另一个进程从就绪态变成运行态的过程。如此的进程切换,就需要保存一些进程的上下文,保存进程的生命周期信息(寄存器如PC,SP等等、CPU状态、地址空间)之前提到过,OS为每个进程维护一个PCB,而这也是标志进程存在的标识,此外,OS会为每个处于相同状态的PCB放置在同一个队列中,...
2019-06-15 16:49:25 616
原创 OS进程管理及进程状态转化
OS进程管理进程:指一个具有一定独立功能的程序在一个数据集合上的一次动态执行的过程。简单来说,进程就是正在内存中运行的程序。需要注意的是,不同进程之间的地址空间是相互独立的。进程控制块(Process Control Block,PCB)PCB是OS来描述进程基本情况及变化的一个数据结构,每个进程都在OS中对应有一个PCB,是进程存在的唯一标志。PCB中主要包含以下信息:调度和状...
2019-06-15 12:38:31 1337
原创 OS之页面置换算法
之前几篇博客记录了OS内存管理的一些知识和技术,接下来将继续深入,介绍一些页面置换算法,这里包括一些我们大家都略有耳闻的算法。置换算法当出现缺页故障时,需要从外存调入新的页面到内存中去,而如果此时内存已满,于是就要按照一定策略置换一些物理页帧出来,这就是置换算法的目的。而置换算法的目标就是尽量减少页面的调入调出次数页面置换算法主要可分为两大类:局部页面置换算法置换页面的选择范围仅限于...
2019-06-08 17:34:22 3538
转载 (转)fork之后子进程到底复制了父进程什么?
来自:https://blog.csdn.net/xy010902100449/article/details/44851453#include<stdio.h>#include<string.h>#include<stdlib.h>#include<unistd.h> void main(){ char str[6]="hello"; ...
2019-06-07 22:18:33 625
原创 POJ-3984-迷宫最短路径
>>POJ-3984–传送门<<最短路径,BFS搜索就OK,主要是怎么输出,一时半会还没想到,因为总是想着怎么记录每一步的下一步,这是一个思维误区。其实可以反过来考虑,从终点出发一直找前驱结点,然后反向输出,当然了,这样用个栈就可以了。坑点1输出每个点的时候,逗号和第二个数字之间要加个空格,比如,应该输出(0, 1)而不是(0,1),于是我第一遍提交的时候说我pre...
2019-06-07 21:12:52 288
原创 OS虚拟内存管理
说在前面的话:如果你对OS的一些基本概念在当初学习的时候都了然于胸,只是目前有点淡忘,你可以直接阅读本文;如果你对虚存管理不是很理解,请看我之前写的文章,涉及到了一些基本概念OS内存管理OS的中断、异常、系统调用虚存管理计算机内存越来越大,但是软件的内存开销也是随之增加的,计算机系统总是会出现内存不够的问题,于是出现了以下几种办法来解决内存空间不够的问题:覆盖(overlay)应用...
2019-06-05 22:07:08 415
装双系统(win10+Ubuntu 16.04)后,无法进入Ubuntu系统?
2018-03-15
Qt组件设置QSqlQueryModel没显示数据?
2018-02-12
Qt报错有未处理的异常?
2018-02-05
Qt槽函数接受不到信息?
2018-01-29
Android解析XML文件时属性顺序错乱,求指点?
2018-01-25
VS2013创建Qt项目时错误
2018-01-17
java socket对象流输出时序列化的问题?
2017-12-21
哈夫曼树构造过程中出现乱码?
2017-11-02
js中post提交数据时的错误
2017-10-10
c++调用.h文件时出现未定义标识符?
2017-09-23
c++链表操作时出现的指针错误
2017-09-12
css中背景设置了图片就是显示不出来?
2017-08-04
c++实现将文件中的注释删掉
2017-06-03
关于c++模板和类实现时的问题,求助!
2017-05-24
关于C++编译时的报错,求帮忙指出?
2017-05-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人