操作系统
CYD、孤狼
没有搞不定的,只有进行中的…
展开
-
Linux-----多线程生产者与消费者模型
生产者与消费者模型原理: 使用链表将产品连接起来,当单表为空时,消费者等待,生产者开始生成,并将产品连接到链表上,消费者每次消费后,改变头结点的指向。模型:代码:#include<stdio.h>#include<pthread.h>#include<stdlib.h>#include<stdlib.h>#include<...原创 2018-05-09 16:16:43 · 492 阅读 · 0 评论 -
fork函数
fork函数 在linux中fork函数是非常重要的函数,它从已存在进程中创建一个新的进程。新进程为子进程,而原进程为父进程。#include<unistd.h>pid_t fork(void);//返回值:子进程返回0,父进程//中返回子进程的,出错返回-1fork函数的返回值 子进程返回0; 父进程返回的是子进程的pid。写时拷贝 ...原创 2018-07-07 09:25:05 · 386 阅读 · 0 评论 -
设备管理-----操作系统
设备管理原创 2018-06-14 15:17:39 · 2258 阅读 · 0 评论 -
磁盘存储管理-----操作系统
磁盘存储管理原创 2018-06-14 12:45:06 · 3283 阅读 · 0 评论 -
文件管理-----操作系统
文件管理原创 2018-06-14 11:03:43 · 404 阅读 · 0 评论 -
存储管理-----操作系统
存储储管理原创 2018-06-14 09:28:39 · 866 阅读 · 4 评论 -
进程控制-----操作系统
进程控制原创 2018-06-06 12:23:47 · 355 阅读 · 0 评论 -
作业管理-----操作系统
操作 系统原创 2018-06-05 13:26:55 · 5429 阅读 · 0 评论 -
Linux-----gdb的多线程调试
一、多线程调试最重要的几个命令:info threads :查看当前进程的线程。GDB会为每一个线程分配一个ID,后面操作线程的时候会用到这个ID,前面有*的是当前调试的线程。thread :切换调试的线程为指定ID的线程。Break file.c :100thread all 在file.c 文件第100行处为所有经过这里的线程设置断点。set scheduler-locking off...原创 2018-05-07 23:40:05 · 154 阅读 · 0 评论 -
线程
一、线程的概念 线程,有时被称为轻量级进程(LWP),是程序执行的最小单元。一个标准的线程由线程ID,当前指针(PC),寄存器集合和堆栈组成。另外,线程是一个进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一进程中的多个线程可以并行...原创 2018-04-29 19:45:03 · 188 阅读 · 0 评论 -
信号的知识点总结
一、信号的基本概念为了更加清晰的了解信号,那么就拿我们最熟悉的场景切入:1>用户输入命令,在shell下启动一个前台进程。2>用户按下ctrl-c,这个键盘输入就是一个硬件中断。3>如果Cpu当前正在执行这个代码,则该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中断。4>终端驱动将Ctrl-C解释成一个SIGINT信号,,记在该进程的PCB中(也可以说发送...原创 2018-04-26 23:39:28 · 621 阅读 · 0 评论 -
编辑、编译与安装的知识点总结
1.除了vim,还有一些其他牛逼的编辑器,包括emacs、nano、sed等,接下来,我们主要以以上三种与vim做一个简单的比较:vim是从vi发展出来的一个文本编辑器。代码补完、编译及代码跳转等方便编译的功能特变丰富,在程序员中被广泛使用。和emacs并列成为类Unix系统用户最喜欢的编译器。emacs则强调统一的环境,便于编程----里面包含了源代码的管理,最重要的是所谓与gdb出自一家,兼容...原创 2018-03-11 11:30:23 · 257 阅读 · 0 评论 -
进程的部分知识点总结
本篇博客将为大家分析进程的调度算法、task_struct结构体,模拟实现僵尸进程and孤儿进程,并对进程与虚拟空间做相应的阐述,最后将使用setenv、export等环境变量 相关的函数和命令进行相应的操作 。task_struct结构体:task_struct是什么?首先我们对该结构体做一个相对的认识。 linux内核通过一个被称为进程描述符的task_struc...原创 2018-03-16 13:15:37 · 260 阅读 · 0 评论 -
vim基础知识
一. 进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限. 进入目录需要可执行x的权限 cd 执行操作需要x权限 (展开此目录下内容) touch 执行操作需要w,r,x三种权限 (创建一个文件) ls 执行操作需要r,x两种权限(查看目录下内容) rm ...原创 2018-03-22 10:46:55 · 115 阅读 · 0 评论 -
文件的操作与动态(静态)库的打包
一、文件的操作:(open、read、write、close)程序代码:1)读文件[chaiyandong@localhost linux_work]$ cat read.c//读文件#include<stdio.h>#include<string.h>//主函数int main(){ FILE* fp = fopen("myfile","r"); if(!fp){ pr...原创 2018-04-15 12:23:00 · 310 阅读 · 0 评论 -
死锁知识点总结
一、什么是死锁 学习操作系统,死锁是一个关键的知识点,接下来,我们先用几个小列子让我们更加清晰的认识死锁,例1:进程P为对象A加锁以便对其独占使用,并继续请求对象B;进程Q已经为对象B加锁,当进程Q继续请求对象A时将发生死锁。例2:哲学家就餐问题,五个(男性)哲学家以思考和用餐的方式生活。他们围坐在有五张椅子的一个圆桌边,每一个哲学家有一张椅子。在桌子中央有一碗意大利面条,桌子上还有...原创 2018-04-22 13:25:20 · 360 阅读 · 0 评论 -
进程通信------管道
什么是管道1>管道是UNIX中最古老的进程通信的形式。2>一个进程连接到另一个进程的一个数据流(称为一个“管道”)。常见管道实例:who | wc -l匿名管道#include<unistd.h>功能:创建一个无名管道原型:int pipe(int fd[2]);参数:fd:文件描述符数组,其中fd[0]表示读端,fd[1]表示写端。返回值:成功返回0,失败返回错误代码注:...原创 2018-04-26 00:01:49 · 469 阅读 · 0 评论 -
进程间关系与守护进程
一、进程组 每个进程除了有一个进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合。通常它们与同一个作业相关联,可以接收来自同一终端的各种信号。每一个进程组有一个唯一的进程组ID。每一个进程组可以有一个组长进程。组长进程的标识符,其进程组ID等于其进程ID。组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要是某个进程组中一个进程存在,则该进程组存在,这与其组长是否终止无关。...原创 2018-05-03 22:38:07 · 113 阅读 · 0 评论 -
进程终止
1.进程 进程是计算机的程序关于某数据集合上的一次运行活动,是系统进程资源分配和调度的基本单位,是操作系统结构的基础。2.进程的终止方式正常终止:1.从main返回;2.调用exit;3.调用_exit或_Exit;注:_exit和_Exit立即进入内核,exit则先进行一些清理处理,然后进入内核。 该三个函数都带一个整型参数,称之为终止状...原创 2018-10-02 18:30:17 · 275 阅读 · 0 评论