Linux
学习网络编程和系统编程的知识
fighting QAQ
及时当勉励,岁月不待人
展开
-
“走进计算机深处”【Linux】线程(四)
线程(四) 前言:前面主要学习了线程控制、线程安全,互斥锁和消息队列的使用、生产者与消费者模型实现。 信号量 作用:用于实现线程间的同步与互斥 本质:是一个计数器+等待队列,并且向用户提供的使线程等待与唤醒的功能接口 原理:通过计数器对临界资源进行计数,当用户访问临界资源时先访问信号量,通过计数判断是否能够访问,若计数<=0则表示不能访问,则是线程等待并且计数-1;其他线程产生资源后,计数+...原创 2020-04-01 12:48:14 · 876 阅读 · 2 评论 -
“走进计算机深处”【Linux】线程(三)
线程(三) 前言:线程(二)主要学习了线程安全管理,同步与互斥的作用,明白了互斥锁和等待队列的使用场景和方法,这篇博客主要阐述其发生场景,生产者与消费者模型。 生产者与消费者模型 模型如下: 模型优点: 1.支持忙闲不均 2.支持并发 3.解耦合(让两个模块产生更小的关联性) 模型关系分析: 生产者与生产者应该具备互斥关系 消费者与消费者应该具备互斥关系 生产者与消费者应该具备同步+互斥关系(同...原创 2020-03-31 13:40:39 · 157 阅读 · 1 评论 -
“走进计算机深处”【Linux】线程(二)
【数据结构】线程(二) 前言:上篇博客主要讲述了线程概念和线程控制两部分的内容,这篇博客主要讲述线程安全。 线程安全 概念:多个线程间对临界资源进行争抢访问而不会造成数据二义或逻辑混乱。 线程安全的实现 互斥:同一时间只有一个线程能够访问临界资源来保证数据操作安全性。 同步:通过条件的判断,实现对临界资源访问的时序合理性。 互斥的实现 通过黄牛抢票的例子体会线程安全的重要性以及认识互斥锁 // 操...原创 2020-03-26 13:06:17 · 148 阅读 · 1 评论 -
“走进计算机深处”【Linux】线程(一)
【Linux】线程 前提概要: 竞争条件:多个执行流竞争执行 函数的可重入和不可重入: 函数的重入:多个执行流同时进入一个函数执行代码 可重入:函数重入不会造成数据二义,或者逻辑混乱 不可重入:函数重入可能造成数据二义,或者逻辑混乱 关键点:是否对全局数据进行非原子安全操作(原子操作指不可被打断) SIGGHLD信号:子进程退出后操作系统给父进程发送通知信息 。这个信号默认处理方式,就是什么都不做...原创 2020-03-21 19:04:26 · 188 阅读 · 0 评论 -
“走进计算机深处”【Linux】进程间通信(IPC)
【Linux】进程间通信(IPC) 进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。 进程间通信的目的 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。 通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止 时要通知父进程)。 进程控制:有些进程希望完全控制另一...原创 2020-03-19 14:54:59 · 323 阅读 · 2 评论 -
【Linux】进程控制(二)
Linux进程控制 进程创建 fork函数 在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。 #include <unistd.h> pid_t fork(void); 返回值:子进程中返回0,父进程返回子进程pid,出错返回-1 进程调用fork,当控制转移到内核中的fork代码后,内核做: 1.分配新的内存块和内核数据...原创 2020-03-19 11:44:21 · 205 阅读 · 0 评论 -
“走进计算机深处”【Linux】进程(一)
【Linux】进程 什么是进程? 进程(Process)是指计算机中正在运行的程序,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。进程是程序真正运行的实例,若干进程可能与同一个程序相关,且每个进程皆可以同步或异步的方式独立运行。(来自百度百科) 为什么引入进程? 进程是为了提...原创 2020-03-18 16:07:50 · 206 阅读 · 1 评论 -
【Linux】vim、gcc、Makefile
【Linux】开发工具及使用(vim、gcc、Makefile) 首先要使用到的工具有vim、gcc、Makefile等。 Vim和gcc 1. vim 主要叙述vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 正常/普通/命令模式(Normal ...原创 2020-03-18 14:09:49 · 1277 阅读 · 4 评论 -
【Linux】常见指令
Linux常见命令 Linux概念: Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发 布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统 比特科技 内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统, 它包括GUI组件和许多其他实用工具。...原创 2020-03-18 12:31:16 · 429 阅读 · 0 评论