Linux
文章平均质量分 87
sandmm112
这个作者很懒,什么都没留下…
展开
-
Linux中的相关命令及文件
1. 有关命令及其权限问题以bin目录为例,查看该目录的相应权限,先入命令ls -ld bin,显示:dr-xr-xr-x. 2 root root 4096 Mar 2 03:08 bin/d表示该文件是目录文件,r表示读权限,w表示写权限,x表示执行权限,如果没有某一权限用“-”表示。d后面三个字符表示该目录的用户即文件拥有者的三种权限,再后面三个表示组用户的三中权限,再后面三个表示其他用户...原创 2018-03-07 16:49:58 · 210 阅读 · 0 评论 -
操作系统------生产者消费者模型
在“进程间通信----信号量”一文中,有简单介绍过生产者消费者模型的基本概念。在下文中将使用有关线程的互斥与同步的相关概念来实现两种不同类型的生产者消费者模型。在本文中侧重于线程间同步的实现。有关线程互斥与同步的相关概念见线程的互斥与同步一文: 首先介绍该模型的背景知识:生产者消费者问题 该问题是一个著名的同步问题。它描述的是:一群生产者进程正在生产产品...原创 2018-04-24 18:06:59 · 5121 阅读 · 0 评论 -
操作系统------线程的概念/线程与进程的区别
线程的引入 在“进程的概念”一文中,提到了进程的两个基本属性:(1)进程是一个可拥有资源的基本单位。包括PCB,地址空间,页表,物理内存上的数据和代码等。(2)进程同时又是一个可独立调度和分派的基本单位。每个进程都有唯一的一个PCB,操作系统通过PCB感知进程的存在,进而调度进程。 为了使程序能够并发执行,操作系统必须:(1)创建进程:为其分配资源和PCB等(2)进程切...原创 2018-04-24 22:21:42 · 562 阅读 · 0 评论 -
网络编程------UDP协议网络程序
以下有关IP地址,端口号,网络字节序列相关知识见:网络编程------IP地址,端口号,套接字,网络字节序 这里要先简单认识UDP协议。UDP协议 UDP协议也称为用户数据报协议。它是传输层的一种协议。根据该协议在进行数据传送时,两台主机之间不需要相互连接,直接根据对方的IP地址和端口号进行数据传送。所以不用花费时间去连接两台主机,因此根据该协议进行传...原创 2018-05-09 17:13:10 · 477 阅读 · 0 评论 -
操作系统------线程控制:线程的创建,等待与分离,终止
在线程的概念一文中,有提到在Linux下的线程的实现是通过NPTL线程库实现的。即每一个用户态的线程对应于内核中的一个调度实体(一个PCB/一个内核级线程)。可以说,一个Linux下的线程包含两部分组成:一个用户级的线程,一个内核级的线程(PCB)。 之前有提到过,操作系统并不知道用户级线程的存在。而Linux中的线程又包含一个用户级的线程。所以该用户级线程的实现是通...原创 2018-04-25 11:48:43 · 1282 阅读 · 0 评论 -
操作系统------死锁产生的必要条件
现有一双筷子每支标为1,2(分开放)。有A,B两人竞争筷子来吃饭。当A拿到1后,要去拿2,此时却发现B已经拿到了2。而B要拿1时却发现它已经被A拿到。双方都希望对方能够放弃他所拥用的的一支筷子。而不愿放弃自己所拥有的。此时,二者便陷入了僵持状态,从而形成了死锁。计算机中死锁的产生 计算机中的资源通常分为两类:一类叫可重用资源,一类叫可消耗资源可重用资源 ...原创 2018-04-25 16:35:29 · 439 阅读 · 0 评论 -
避免死锁------银行家算法
本文中的相关理论出自该书: 计算机操作系统(第四版)(汤小丹等编) 在死锁产生的必要条件一文中,提到了死锁产生的四个必要条件,本文将通过银行家算法来阐述如何避免死锁的产生。在介绍该算法之前先介绍有关系统状态的概念。 在避免死锁产生时,系统的状态可分为安全状态和不安全状态。当系统处于安全状态时可以避免产生死锁,反之,当处于不安全状态时,就会产生死锁。安全状态 ...原创 2018-04-25 17:46:46 · 1451 阅读 · 0 评论 -
网络编程------TCP协议网络程序
是原创 2018-05-11 09:56:02 · 1134 阅读 · 0 评论 -
网络基础-------netstat命令详解
1. netstatnetstat是一个用来查看网络状态的重要工具用法:netstat [选项]选项: n:拒绝显示别名,能显示数字的全部转化为数字 l:仅列出在Listen(监听状态)下的进程 p:显示建立相关连接的程序名,如进程的PID,程序的工作目录,可执行程序名等 t:仅显示基于Tcp协议的相关进程 u:仅显示...原创 2018-05-17 18:08:22 · 228 阅读 · 0 评论 -
操作系统------进程组/作业/会话/进程控制
进程组 在之前进程的概念中,有提到当一个可执行程序运行起来之后会形成一个进程。 而实际上,当一个程序运行起来后形成的是一个进程组。进程组,顾名思义,就是一个或多个进程的集合。每个进程都有一个唯一的进程组ID。该进程组中的第一个运行起来的进程创建了该进程组,因此该进程为进程组的组长进程。而该进程的进程ID就是该进程组的组ID。 进程组创建之后,只要进程组中还...原创 2018-05-06 12:04:10 · 784 阅读 · 0 评论 -
操作系统------守护进程
守护进程的概念 守护进程也被称为精灵进程。它具有如下特点:(1)它是运行在后台的一种特殊进程。(2)它独立于控制终端,所以不能与用户进行直接交互。(3)它周期性的执行某种任务或等待处理某些发生的事件。(4)它不受用户登录注销的影响,一直在运行着。其它进程都是在用户登录或程序运行后才创建。 基于以上的这些特点,守护进程有如下用途:(1)Linux中的大多数服务器都...原创 2018-05-06 16:31:59 · 1625 阅读 · 0 评论 -
网络基础------TCP/IP五层模型
在生活中,如果一个个的计算机都是独立运行的,即彼此之间互不关联。那我们自己的计算机中有什么,我们就只能看到什么,当要在计算机中查找某个内容时,如果自己的计算机中没有相应的内容就会查找失败。但是在别人的计算机中可能有我们想要查找的内容。所以,如果将各计算机连接起来,形成一个网络,就能达到资源共享的目的。网络概述 网络是由若干结点和连接这些结点的链路组成。其中网络中的结点...原创 2018-05-19 12:10:05 · 1481 阅读 · 0 评论 -
网络编程------IP地址,端口号,套接字,网络字节序
IP地址 IP地址是IP协议中,用来标识网络中的唯一一台主机的地址。IP协议有两个版本IPv4,IPv6。在IPv4中,IP地址是一个4字节的32位的整数。在IPv6中,IP地址是一个16字节的128位的整数。 我们通常所见到的IP地址如:192.168.3.195。是一用点分隔的字符串,每个数字用一个字节存储,范围是0~255,所以这种形式的IP地址也被称为“点分十进...原创 2018-05-08 21:32:41 · 1805 阅读 · 0 评论 -
线程的同步与互斥
在之前的“进程间通信—-信号量”一文中,有介绍过进程的同步与互斥。在本文中,着重来介绍线程的互斥与同步。线程的互斥我们知道,一个进程中的多个线程之间是共享进程所拥有的一个地址空间。它们除了私有上下文,私有栈等少量资源是独有的,其余大部分资源都是共享的。比如说,文件描述符表。当一个线程以只读的方式打开某一文件时,与它所在同一进程的其他线程也是可以读取该文件的。多个线程之间共享资源。这对于...原创 2018-04-24 00:20:14 · 634 阅读 · 0 评论 -
进程间通信------共享内存
以下用到的消息队列中的相关内容,均可在这里找到:https://blog.csdn.net/sandmm112/article/details/79936107 共享内存是进程间通信的一种方式。系统中物理内存结构及进程与共享区的映射关系如下: 创建一个共享内存是指在共享取开辟一片区域,将该区域分别映射到两个进程的虚拟地址空间中,那这两个进程便可以通过这片共享区...原创 2018-04-14 01:01:30 · 250 阅读 · 0 评论 -
进程和环境变量的相关概念
一,进程1. 进程的概念 简单的说,一个执行中的程序就是一个进程。具体说, 进程是一个分配系统资源的活动实体,它包含以下两点:(1)实体,每个进程都有一段地址空间,在这段空间中,用于存放程序的代码,数据,指令的地址等静态的事物;(2)程序运行的过程,是一个动态的概念,即需不断申请占用系统资源的当前的活动过程。总之,进程不仅包含有关程序的一些静态事物,还有需不断申请系统资源的动态的过程。...原创 2018-03-15 20:33:10 · 3796 阅读 · 0 评论 -
实现彩色进度条
如何在linux下实现一个彩色的进度条呢,先看下一条成熟的进度条: 实现一个彩色的进度条需实现以下几点:(1) 由#组成的进度条在一行上由少到多一个个增长,直到增加到已设定的值(2) 随着进度条的增长,在该行的结尾显示变化着的进度百分比(3) 在进度条增长的过程中,有一光圈不停转动,直到进度条完成(4) 将进度条变为彩色的 接下来,实现上述几点需求:1....原创 2018-03-12 11:49:14 · 612 阅读 · 0 评论 -
进程控制
在了解了进程的相关概念之后,接下来了解一下进程控制。一. 进程的创建 以下是两种创建子进程的方法:1. 通过系统调用fork 该系统调用的原型为:pid_t fork(void);//需引用的头文件为<unistd.h> fork的作用是通过正在运行的父进程来创建子进程。fokk在执行过程中:(1)系统分配新的内存块和数据结构给...原创 2018-03-23 09:42:07 · 242 阅读 · 0 评论 -
系统调用接口,文件描述符,重定向,FILE,动/静态库
一. C库函数 之前,我们有用fopen,fclose,fread,fwrite来对文件进行打开,关闭,读取,写入操作。上述几个函数都是C标准库中的函数。在调用以上函数时,都会涉及到一个FILE*指针,那它到底是什么呢? 这里,首先要知道C库函数是对系统调用的一层封装,也就是说,在执行C库函数时,这些函数调用了系统提供的接口函数。上述四个函数调用的系统接...原创 2018-03-31 19:19:20 · 416 阅读 · 0 评论 -
进程间通信------信号量
以下用到的消息队列中的相关内容,均可在这里找到:https://blog.csdn.net/sandmm112/article/details/79936107 信号量是进程间通信的有一种方式。之前有提到共享内存是不带同步与互斥机制的,这样在多个进程同时对共享内存写入数据时,会导致数据错乱。而信号量就是确保多个进程在对共享内存这样的共享资源同时读写时,使之实现互斥与同步的,...原创 2018-04-14 12:38:13 · 950 阅读 · 1 评论 -
信号的概念及信号产生的条件
一,信号的基本概念 生活中有很多信号。比如,早上的闹钟响了,你可以识别出这是通知你起床的信号,你可以采取不同的措施来处理(起床或继续睡);放学铃响了,通知大家现在到了放学时间;等等,还有很多各种各样的信号。这些信号因为某些原因产生后(比如提前设定了闹钟),首先会识别它属于什么信号(通知起床的还是其他的),然后在给出处理这些信号的动作。 在操作系统中,也有信号通知机制。当...原创 2018-04-16 15:03:41 · 1641 阅读 · 0 评论 -
信号集,信号屏蔽字,捕捉信号
一,信号,信号集1. 信号相关的概念 信号递达:实际执行信号的处理动作 信号未决:从信号产生到信号递达之间的状态 信号阻塞:如果一个信号被阻塞,那它在产生时处于未决状态,不会被递达,只有解除该信号后,才被递达。注意:信号的阻塞,是还未执行处理动作,而信号的忽略是正在处理信号,但信号的处理动作是忽略。这两者是不同的。2. 信号在内核中的表示 我...原创 2018-04-16 15:22:51 · 458 阅读 · 0 评论 -
实现mysleep,可重入函数,SIGCHLD信号
一,pause函数实现sleepint pause(void);//头文件<unistd.h> 该函数的功能是使调用进程挂起直到有信号递达。如果处理动作是终止进程,则进程终止,函数不再返回;若处理动作是忽略,则进程继续挂起;若是自定义行为,则捕捉信号后返回-1。所以该函数只有出错的返回值。 #include <unistd.h> unsigned int s...原创 2018-04-16 15:27:18 · 301 阅读 · 0 评论 -
gdb调试多进程与多线程 【转载】
以下文章转载自:https://blog.csdn.net/snow_5288/article/details/72982594一,gdb的基础知识1>介绍: gdb是Linux环境下的代码调试工具。 2>使用:需要在源代码生成的时候加上 -g 选项. 3>开始使用: gdb binFile 4>退出:ctrl + d 或 quit 5>调试过程中的常用命令: l...转载 2018-04-16 16:22:33 · 167 阅读 · 0 评论 -
进程间通信------消息队列
消息队列 消息队列是进程间通信的另一种方式。一个进程通过系统调用接口创建一个消息队列。操作系统会在内核中开辟一片内存用于进程间通信。而这片内存现在又以消息队列的形式来进行通信的。 消息队列提供了一个进程向另一个进程发送数据块的方法来进行通信。每个数据块都有一个类型,接收进程根据类型来接受自己想要的数据块,且消息的读取不一定是先入先出的,它是由类型决定的。 ...原创 2018-04-14 00:00:38 · 416 阅读 · 0 评论 -
进程间通信------管道
通过前面对进程概念,进程控制的了解,我们知道,每个进程都有自己独立的用户地址空间,任何一个进程中的全局变量在另一个进程中是看不到的。所以进程间的运行是相互独立的。这样做可以保证安全,当一个进程出现问题时,不至于影响其他进程。 但是,当不同进程间要进行传输数据,共享资源,通知消息,进程控制等操作,此时,相互独立的进程是做不到这些的。所以,为了进行这些操作,相互独立的进程...原创 2018-04-14 00:02:55 · 271 阅读 · 0 评论 -
TCP/IP五层网络模型------应用层
在网络基础------TCP/IP五层模型一文中笼统的介绍了有关TCP/IP五层模型的相关知识点,本文中将详细的说明TCP/IP五层网络模型中的应用层,及相关的应用层协议。应用层概述 应用层的任务是通过应用程序间的交互来完成特定的网络应用。根据网络应用的不同,应用程序之间就需要根据不同的方式来实现交互。如:如果两个应用程序之间要传递整型数据,那么二者之间必须遵循这样的...原创 2018-05-20 20:41:28 · 1910 阅读 · 0 评论