自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

转载 进程的基本概念和进程控制

一、 进程控制理论    什么是进程?什么是多进程?进程的分类?    进程和程序的区别?    linux进程管理,有哪些管理工具?作用?    进程的三态是什么?进程的结构有哪些?    进程的调度算法有哪些?什么是优先级反转?    什么是死锁?什么是同步?什么是互斥?  进程的退出    进程退出有几种方式?有什么区别?    掌握exit和_exit的

2016-10-31 19:03:06 6417

原创 Linux sqlite3基本命令

1 、sqlite3常用命令当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端,以sqlite>前缀标识:#sqlite3 test.db 查看数据库文件信息命令(注意命令前带字符'.'):sqlite>.database查看所有表的创建语句:sqlite>.schema 查看指定表的创建语句:sqlite>.schem

2016-10-30 22:17:41 1917

原创 进程和线程的对比

进程概念  进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了

2016-10-29 22:49:56 280

原创 linux下信号量实现通信

一、什么是信号量  为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。信号量是一个特殊的变量,程序

2016-10-29 13:06:14 346

原创 linux 消息队列实现通信

一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。  每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。消息队列的最佳定义是:内核地址空间中的内部链表。消息可以顺序地发送到队列中,并以几种不同的方式从队列中获取。当然,每

2016-10-27 08:36:03 5707

原创 linux中使用共享内存实现通信

一、共享内存介绍共享内存是被多个进程共享的一部分物理内存.共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容.共享内存可以从字面上去理解,就把一片逻辑内存共享出来,让不同的进程去访问它,修改它。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。

2016-10-26 20:20:47 1505

原创 linux中有名管道的使用

有名管道又称为FIFO,是进程间通信的一种方式。FIFO具有以下特点:          1.全双工的通信模式,数据先进先出;          2.可以用于任意的进程之间,通过指定相同的管道文件进行通信;          3.文件名存在文件系统中,而管道中的内容存在于内存中。可通过open、read、write对其操作;有名管道的总体操作:创建管道mkfifo

2016-10-25 16:25:22 4701 1

原创 Linux下的管道通信

管道通信方式分为无名管道和又名管道,无名管道可用于具有亲缘关系的进程间,有名管道可以没有亲缘关系的进程通信。1)管道是半双工的,数据只能向一个方向移动,所以,需要两个进程互相通信时需要建立两个管道。2)数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据。3)它是一个之存在与内存的特殊文件,并且数据

2016-10-24 18:58:33 360

转载 linux文件操作

linux文件操作1.  什么是文件?linux如何看待文件?Linux一点哲学,“一切皆为文件”;在Linux中对目录和设备的操作都等同于对文件的操作,都是使用文件描述符来进行的。Linux文件可分为:普通文件,目录文件,链接文件,设备文件,管道文件。2.  如何来操作文件?C库函数的文件操作是独立于具体的操作系统平台的,不管是在DOS、Windows、Linux还是在VxW

2016-10-23 20:42:31 263

原创 守护进程

本文主要包括三个部分: 一是如何实现一个守护进程,二是如何检测一个进程是否活着,三是保证某一执行文件只有一个实例在运行。1.守护进程守护进程的最大特点就是脱离了中断,Linux提供了一个系统调用daemon(),要想自定义实现的话,主要包括以下六个步骤:1.第一步是使用umask函数,把所有的文件屏蔽字置0。文件屏蔽字是可以继承的,当你有相关操作时,如果你要创建一个文件,继承过

2016-10-22 23:21:58 578

原创 Linux中的文件锁

一、Linux 中的文件锁Linux 支持的文件锁技术主要包括劝告锁(advisory lock)和强制锁(mandatory lock)这两种。此外,Linux 中还引入了两种强制锁的变种形式:共享模式强制锁(share-mode mandatory lock)和租借锁(lease)。在 Linux 中,不论进程是在使用劝告锁还是强制锁,它都可以同时使用共享锁和排他锁(又称为读锁

2016-10-21 21:29:17 1284

原创 exec函数族

1.execl 函数作用:执行文件 函数原型:int execl(const char * path,const char * arg,...); 头文件:#include 参数:path:文件路径 arg:表示执行该文件时传过去的argv[1],argv[2],…. 参数最后必须要以NULL结束 返回值:成功不返回,失败-12.execlp 函

2016-10-20 21:26:46 246

转载 Linux 不带缓冲的命令

1.creat函数的作用:创建一个文件函数的原型:int creat(const char * pathname,mode_t mode)参数的含义:第一个参数,是文件的的名字,可以写路径,没有路径那么就是当前的文件夹里面;            第二个参数是文件的权限的问题,主要是分为三组用户,以及三种的权限,三种用户返回值:成功的话    返回的是文件的描述符     

2016-10-19 07:18:49 541

转载 进程的相关概念

进程的概念进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元进程与程序的关系程序是放到磁盘的可执行文件,进程是指程序执行的实例进程是动态的,程序使静态的进程是暂时的,程序使长久的进程与程序组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。进

2016-10-17 21:55:39 335

原创 linux C编程 进程操作

1,linux进程操作1.1 函数system【调用fork】system()会调用fork()产生子进程,由子进程来调用/bin/sh -c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。、函数原型: int syste

2016-10-16 20:24:59 626

转载 Linux下创建、打开、写入文件操作

linux下既然把所有的设备都看作文件来处理,就要熟练使用linux下文件操作的相关API。#include #include #include #include #define LENGTH 100 int main(int argc,char* argv[]) { int fd,len; char str[LENGT

2016-10-15 19:34:57 1444

原创 Make管理器

Make管理器make (make通过makefile来实现操作)兴起原因: 当我们写许许多多.c文件的时候,编译起来会非常麻烦,虽然可以gcc *.c,编译所有的.c文件,但是不同目录下的.c文件还是不可以一起编译。所以要用make统一编译。特点: 能够自动编译 (1.按照Makefile的内容命令进行编译 2.自动判断时间戳,没有修改源文件就不会再重新编译)Makefi

2016-10-14 21:37:21 246

原创 关于PWM波

最近在调小车,被pwm波搞得有点晕,这是今天的总结,略微有些明白。首先说一下舵机,想要控制舵机,那么我们就需要一个周期T = 20ms。高电平小t等于0.5ms-2.5ms之间的这样一个方波。 为什么是这个参数呢?因为 t (高电平在一个周期内持续时间) t = 0.5ms——————-舵机会转动 0 ° t = 1.0ms——————-舵机会转动 45° t =

2016-10-13 18:33:49 583

原创 操作系统的进程管理(c语言模拟)

今天就更一下,模拟进程管理程序。#include#include#include#include//#define NULL 0int shumu=0;//进程的内容结构体struct node{ char a[20]; //int a; // char ch;};typedef struct node Node; //进程PCB结构体struc

2016-10-12 12:30:33 17907 1

原创 汉森实现管程的实例

一、管程来解决生产者/消费者问题1)Struct Monitor{ condition NF,NE; int Buffer[n]; int k = 0,t = 0,count = 0; define Add(int),Remove(int); use wait(),signal(),check(),release(); void in

2016-10-11 08:59:49 1600

原创 管程机制处理进程同步问题

进程同步机制有很多,主要有PV操作和信号量,管程,以及消息传递等。由于PV操作的使用分散在各个进程之中,不利于对临界资源的统一管理,还有PV操作的使用需要小心,若顺序不对,或忘一个没写,很容易陷入死锁,所以,管程就能解决上面问题。管程的基本思路是:将分散在各个进程中的临界区集中起来进行统一控制和管理,并且将系统中的共享资源用数据结构抽象的描述出来,然后对临界区的访问通过管程进行统一

2016-10-10 14:30:18 4290

原创 8086存储器编址和I/O编址

1)存储器编址由于微处理器内部的寄存器和ALU都是16位的,为了方便20位的地址管理,在8086对存储器管理的设计中,采用了分段管理的技术。采用分段方法进行编址的优点:减少指令长度,提高指令执行速度。为程序的浮动装配创造了条件。(1)物理地址和逻辑地址对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000H~FFFFFH。用户编程时,采用逻辑地址,形式

2016-10-09 19:17:49 2070

原创 使用多个段来存储数据(汇编语言)

我们在以前学过在一个程序中使用了栈,数据,代码之类的,如果将他们都放在一个段里面,既显得凌乱,而且8086的一个段最大64KB,如果数据过于庞大,那也会显得不方便,所以,应该使用多个段来分别处理数据,代码,栈。下面我们来分析一段程序,通过这个程序来讲解:说明:①定义多个段和我们以前讲的定义代码段一样,只是段名不同而已。②程序中有多个段如何访问这些数据呢,

2016-10-08 09:01:01 1360

原创 8086的寻址方式

咳咳,今天偷一下懒,我先更新一下8086的寻址方式,等明天再为大家更新新的东西。一、寻址方式形成操作数或指令地址的方式,称为寻址方式。寻址方式分为两类: •指令寻址方式、操作数寻址方式操作数的寻址方式:
•形成操作数的有效地址(EA)的方法在8086/8088中,操作数在内存中的有效地址是段的偏移地址。1)立即数寻址方式

2016-10-07 10:00:32 527

原创 操作系统的哲学家就餐问题

今天我们来看一下哲学家就餐问题,这是很好的检测新设计出的进程同步原语的功能和性能。问题:有5个哲学家,他们围坐在一张圆桌旁,哲学家只有三种状态,思考,等待筷子,吃面条。每个哲学家面前有一只空盘子,每两个哲学家之间有一支筷子,共五支筷子,每个人只能拿自己旁边的筷子,哲学家只能拿到两只筷子才能吃面条,当一个哲学家饿了,他就试图拿他最近的两支筷子,每次只能拿一支,次序不限,当他成功拿到两支筷

2016-10-06 10:57:08 5131

原创 8086逻辑运算和移位指令

今天更新罗伊运算指令和移位指令,这边好好理解它是怎么操作的就可以了。一、逻辑运算指令AND/OR/NOT/XOR/TEST(与,或,非,异或,测试)①与,或,非,异或这边大家都知道,这里不在重复,举几个例子:AND AX,1000H        ;AX中的16位数和1000H相与,结果送到AX中。OR AX,00F0H         ;AX中的值与00f0相或,结果

2016-10-05 14:23:38 7831

原创 8086乘除指令详解(二)

今天我继续为大家更新乘除指令,

2016-10-04 11:17:15 7099 2

原创 8086加减指令详解(一)

从今天起我就会陆续把算术类指令都将完,有可能比较枯燥,请想学的人仔细看哦!算术运算指令①加法类指令②减法类指令③乘法指令④除法指令⑤BCD吗指令一、加法类指令首先我么们先看加法类指令三个(add,adc,inc)1)不带进位位的加法指令ADDadd用来执行2个字节或2个字的相加操作,运算时不考虑CF位ADD DST,SRC

2016-10-03 10:43:51 12551

原创 8086提供的一些指令详解(二)

今天我们继续昨天的指令的讲解,了解指令,有助于以后更好地学习汇编或微机,希望大家能够深刻理解,我也会尽量讲清楚的。一、换码指令XLAT将(BX)为转换表的首地址,(AL)为位移量的字节存储单元中的数据送到AL寄存器。就是(bx)里面存放的我们事先编好的转换表的首地址,而(AL)里面存放的是这个转换表的的第几个数据即偏移地址,记住XLAT,是一种默认寄存器的指令。通过

2016-10-02 10:37:48 1243

原创 8086提供的一些指令详解(一)

今天我直接系统的介绍一些8086指令用法,以便以后更好地读懂程序。能够写些简单的程序。一、传送指令mov解释一下:mem(主存),imm(立即数),reg(寄存器),seg(段寄存器),DST(目的操作数),SRC(源操作数)。(以后都这样)。mov DST,SRC             ;就是将(SRC)->DST。例如:mov al,4

2016-10-01 12:34:39 4605

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除