- 博客(25)
- 资源 (14)
- 收藏
- 关注
原创 eclipse的安装(Windows)
eclipse的安装(Windows)好几个舍友让我帮忙装一下eclipse,索性就写篇博客,供一些对于Java感兴趣的同学装环境提供点帮助(注明:盗用了前辈的几张图(忘了记下链接),如有冒犯,留言即删)。下载X64位的JDK和eclipse下载JDK安装包,到官网http://www.oracle.com/technetwork/java/javase/downloads/in...
2018-08-30 12:09:57 5124 2
原创 银行家算法(避免死锁最具代表性的算法)
概念点击查看->基本概念如何避免死锁银行家算法,数据结构,算法思想银行家算法中的数据结构: ① 可利用资源向量 Available ② 最大需求矩阵Max ③ 分配矩阵 Allocation ④ 需求矩阵 Need 三个矩阵间存在下述关系:Needp[i,j] = Max[i,j] –Allocation[i,j]算法思想: (1)如果Request i[...
2018-08-30 11:48:35 2380
原创 死锁面试题(什么是死锁,产生死锁的原因及必要条件)
什么是死锁?所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。产生死锁的原因?可归结为如下两点:a. 竞争资源系统中的资源可以分为两类: 1. 可剥夺资源,是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺,CPU和主存均属于可剥夺性资源; 2. 另一...
2018-08-30 11:36:30 14057
原创 线程等待(为什么要线程等待,如何等待)
线程等待为什么需要线程等待(WHY)?已经退出的线程,其空间没有被释放,仍然在进程的地址空间内。创建新的线程不会复⽤刚才退出线程的地址空间 如何等待(HOW)?功能:等待线程结束 原型#include <pthread.h>int pthread_join(pthread_t thread, void **value_ptr);参数 thread:线程I...
2018-08-30 09:03:44 5181
原创 临界区,临界资源,原子性(面试题)
什么叫做临界区,临界资源,原子性临界资源:临界资源是一次仅允许一个进程使用的共享资源。各进程采取互斥的方式,实现共享的资源称作临界资源。属于临界资源的硬件有,打印机,磁带机等;软件有消息队列,变量,数组,缓冲区等。诸进程间采取互斥方式,实现对这种资源的共享。临界区:每个进程中访问临界资源的那段代码称为临界区(criticalsection),每次只允许一个进程进入临界区,进入后,不允许其他...
2018-08-29 11:46:26 2563
原创 线程分离
线程分离什么是线程分离(WHAT)简单来讲,线程分离就是当线程被设置为分离状态后,线程结束时,它的资源会被系统自动的回收,而不再需要在其它线程中对其进行 pthread_join() 操作。为什么线程分离(WHY)在我们使用默认属性创建一个线程的时候,线程是 joinable 的。 joinable 状态的线程,必须在另一个线程中使用 pthread_join() 等待其结束,如果...
2018-08-29 11:44:50 6429
原创 线程控制
线程控制(Linux下,pthread库如何控制线程)简单来说是通过pthread簇函数来控制,常见的必不可少的就是创建和终止,具体如下:创建线程(pthread_create)#include &lt;pthread.h&gt;int pthread_create(pthread_t *restrict thread,/ const pt...
2018-08-29 10:36:47 141
原创 浅谈线程基本概念
浅谈线程基本概念站在操作系统管理角度,理解什么是线程线程是不拥有独立资源空间的程序执行流的最小单位站在进程地址空间角度,理解什么是线程线程是进程中的实体,是进程内部的控制序列,和该进程内的其他线程共享地址空间和资源站在执行流角度,理解什么是线程线程是程序中一个单一的顺序控制流程,是程序执行流的最小单位如何理解线程是进程内部的一个执行分支原因60年代...
2018-08-28 20:50:58 295
原创 进程与线程的区别(面试题)
进程与线程的区别进程是资源分配最小单位,线程是程序执行的最小单位;进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段,线程没有独立的地址空间,它使用相同的地址空间共享数据;CPU切换一个线程比切换进程花费小;创建一个线程比进程开销小;线程占用的资源要⽐进程少很多。线程之间通信更方便,同一个进程下,线程共享全局变量,静态变量等数...
2018-08-28 20:46:55 45726 8
原创 什么叫做互斥与同步,为什么要引入互斥与同步机制(面试题)
什么叫做互斥与同步,为什么要引入互斥与同步机制互斥:是指散步在不同任务之间的若干程序片断,当某个任务运行其中一个程序片段时,其它任务就不能运行它们之中的任一程序片段,只能等到该任务运行完这个程序片段后才可以运行。最基本的场景就是:一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共资源。同步:是指散步在不同任务之间的若干程序片断,它们的运行必须严格按照规定的某种先后...
2018-08-28 09:37:19 2081
原创 进程间通信
进程间通信进程间通信为什么要通信(重点)怎么通信(主要三种方式),通信本质(重点)管道(Unix中最古老的进程间通信的方式)系统IPC(System V IPC资源生命周期随内核)套接字(socket)一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并能够相互传递交换信息为什么要通信(重点)数据传输:一个进程需要将...
2018-08-27 13:01:27 135
原创 进程地址空间(分段/分页)
进程地址空间对于一个进程空间分布图如下: 引子:猜猜下面输出结果,为什么呢?#include &lt;stdio.h&gt;#include &lt;unistd.h&gt;#include &lt;stdlib.h&gt;int g_val = 0;int main() { pid_t id = fork(); if(id &lt; 0){
2018-08-27 12:58:17 7504 5
原创 进程终止
进程终止终止方式1.正常终止,结果正确2.正常终止,结果错误3.异常终止终止方法1.正常终止(可以通过echo $?查看进程退出码)调用_exit函数#include <unistd.h>void _exit(int status)参数:status定义了进程终止状态,父进程通过wait来获取注意:虽然status是int,但只有低八位可以被...
2018-08-27 10:25:46 372
原创 进程程序替换
进程程序替换替换原理 fork创建子进程执行的是和父进程相同的程序(也有可能是某个分支),通常fork出的子进程是为了完成父进程所分配的任务,所以子进程通常会调用一种exec函数(六种中的任何一种)来执行另一个任务。当进程调用exec函数时,当前用户空间的代码和数据会被新程序所替换,该进程就会从新程序的启动历程开始执行。在这个过程中没有创建新进程,所以调用exec并没有改变进程的id。替...
2018-08-27 10:24:17 304
原创 进程等待
进程等待为什么要等待? 1.子进程退出,如果父进程不管不顾,可能造成僵尸问题,造成内存泄漏 2.一旦变成僵尸状态,kill -9都无能为力,因为没有谁可以杀死一个死去了的进程 3.父进程需要知道子进程完成任务的情况(对错与否,有没有异常退出等) 4.父进程需要通过进程等待的方式回收子进程的资源,获取退出信息怎么等待?(两个接口函数) wait...
2018-08-27 10:21:19 239
原创 进程创建(以及fork和vfork的区别)
进程创建fork函数#include<unistd.h>pid_t fork(void)返回值:自进程返回0,父进程返回子进程ID,出错返回-1。进程调用fork函数时,当控制转移到内核中fork代码后,内核做的事情有:分配新的数据块和数据结构给子进程将父进程的数据结构的部分内容拷贝到子进程中将子进程添加到系统进程列表fork返回。开始调度器调度fo...
2018-08-27 10:20:02 287
原创 进程和程序有什么区别(面试题)
进程和程序有什么区别进程是程序的一次执行过程,是动态概念,程序是一组有序的指令集和,是静态概念进程是暂时的,是程序在数据集上的一次执行,可创建可撤销,程序是永存的进程具有并发行,程序没有进程是竞争计算机资源的最小单位,程序不是进程与程序不是一一对应,多个进程可执行一个程序,一个程序可执行多个程序...
2018-08-27 10:17:50 3884
原创 浅谈进程基本概念
进程概念(PCB[task_struct])进程概念(PCB[task_struct])进程标识,进程间关系进程状态进程在运行中的几种运行状态Linux下的进程状态(R、S、D、T、Z、X)进程优先级基本概念:程序执行的一个实例,正在运行的程序 基于内核:但当分配系统资源(CPU时间、内存)的实体 基于PCB(Linux下称为task_struc...
2018-08-27 10:16:24 117
原创 面试之关键字extern "C"
extern “C”的作用及原因?答: 1. 作用是在C++语言里面可以正确的调用C语言函数原因是因为C++编译时为了能支持函数重载以及多态的问题,会将函数名和参数联合起来生成一个中间的新函数名,链接时找的都是新的函数名,而对于C语言来说,不会产生新的函数名,所以在C++中用C语言的函数时,如果没有特殊声明,函数进行链接会找不到对应函数,所以如果在C++中使用C语言函数时,我们通常要加...
2018-08-19 09:27:22 523
原创 浅谈操作系统
浅谈操作系统浅谈操作系统站在冯诺依曼角度,理解操作系统定位站在管理角度,理解操作系统[先描述再组织]站在应用者的角度,理解操作系统站在操作系统角度,理解系统调用接口站在操作系统角度,理解操作系统外壳程序定位与作用(Linux shell)对比系统调用,理解库函数站在冯诺依曼角度,理解操作系统定位管理和控制计算机硬件与软件资源的计算机程序 冯诺伊曼...
2018-08-19 09:19:32 483
原创 宏和函数的区别
宏—(宏和函数的区别)如何定义一个宏函数宏函数#define Min(x, y) ((x)<(y)?(x):(y))对比普通函数int Min(int a, int b){return a<b?a:b}定义宏应该注意优先级问题,要在宏定义的变量和函数加括号,避免优先级问题宏和函数的区别宏做的是简单的字符串替换,而函数是参数传...
2018-08-16 08:32:55 492
原创 结构体(对齐规则及举例)
结构体(对齐规则及举例)概念一种数据结构;C语言中聚合数据类型的一类;可以被声明为变量、数组、指针等,用以实现比较复杂的数据结构;是一系列元素的集合,这些元素被称为结构体成员;结构体成员需要用结构体名访问。结构体声明struct A{ //struct是关键字, A是结构体标志 int a; //a,b是结构体成员列表 char b;}s1;...
2018-08-07 11:37:03 3818
原创 判断一个字符是否为数字的两种方法(C/C++)
判断一个字符是否为数字的两种方法(C/C++)在平时,我们经常遇见判断字符是否为数字这种题目,虽然感觉还是很简单,不过我是个更喜欢用函数的人,因为我觉得这样更便捷,所以我更推荐第二种方式。1.直接判断#include <stdio.h>int main(){ char c; c = getchar();//读取一个字符。 if(c ...
2018-08-05 15:33:33 100552 4
原创 指针和引用(传指针和传引用)
指针和引用(传指针和传引用)指针和引用(传指针和传引用)前言联系区别C++中指针传递和引用传递前言指针本质上就是一个存放变量地址的变量,逻辑上是独立的,它可以被改变,包括指向地址的改变和地址所存放数据的改变。引用本质上是一个别名,逻辑上具有依附性,只在定义时初始化一次,是不可变的(从始至终只能依附在一个变量)。联系都是地址的概念...
2018-08-05 15:31:41 314
原创 数组和指针
数组和指针数组和指针数组概念理解分类特点指针(Pointer)概念理解C++标准规定,指针分为两类:指针与数组的关系指针与函数(了解)数组概念理解所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个...
2018-08-05 15:31:03 113
usb-over-network-server-64bit.msi
2022-01-29
QT基于vector(PCan)的CAN工具开发.7z
2020-09-24
Simple_Chart_Untitled.zip
2020-08-12
Dynamic drawing_demo.7z
2020-06-01
net网络问卷调查系统.zip
2019-12-09
ChartCtrl_demo__ChartCtrl_doxygen__ChartCtrl_source.7z
2019-11-19
数据结构课设之二叉树遍历
2018-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人