计算机操作系统
我岂是非人哉
持之以恒收敛至顿悟
展开
-
缓冲区溢出代码
翻译自:https://www.geeksforgeeks.org/buffer-overflow-attack-with-example/有两种缓冲区溢出攻击的方式:1. 基于堆 2. 基于栈第一种实现困难,不常用第二种非常常见,用到了栈编译器提供在编译和链接的过程中进行溢出检查的选项,但是运行时间很难检查,除非要用到异常处理机制下面就是一个栈溢出的代码:// A ...原创 2020-03-31 12:13:47 · 1222 阅读 · 0 评论 -
可重入函数
可重入函数:可以中断的函数不可重入函数中断了之后再来就不知道什么是什么了。如何保护全局变量:1.使用局部变量2.使用信号量3.关中断 题目:以你熟悉的编程语言为例(C,Java等)说明什么样的程序段(函数、方法等)是不可重入的,请解释。如何修改使之可重入。答案:不可重入程序段例子void test(){static int i=0;printf(...原创 2019-02-15 16:13:48 · 229 阅读 · 0 评论 -
封锁协议与两段锁协议
封锁是实现并发控制的一个非常重要的技术。所谓封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他事务不能更新此数据对象。确切的控制由封锁的类型决定。基本的封锁类型有两种:排他锁(exclusive locks,简称X锁)和共享锁(share locks,简称S锁)。排他锁又称为写锁。共享...原创 2019-02-15 16:14:43 · 3877 阅读 · 2 评论 -
/usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: No such file or directory
sudo apt-get install gcc-multilib原创 2018-12-03 20:22:06 · 3493 阅读 · 0 评论 -
【操作系统概念】【恐龙书】笔记六——第六章 进程同步
Chapter 6: Process Synchronization问题的提出:彼此合作的进程之间可以用共享逻辑地址空间的方式来实现,共享逻辑地址空间,也就是共享代码区和数据区,会导致数据不一致,所以介绍一些避免数据不一致的机制。6.1BackgroundConcurrent access to shared data may result in data inconsistency...原创 2019-04-16 20:51:09 · 1649 阅读 · 0 评论 -
【操作系统概念】【恐龙书】笔记五——第五章 CPU调度
Chapter 5: Process Scheduling5.1Basic ConceptsMaximum CPU utilization obtained with multiprogrammingCPU–I/O Burst Cycle – Process execution consists of a cycle of CPU execution and I/O waitCPU...原创 2019-04-16 21:21:56 · 1604 阅读 · 0 评论 -
【操作系统概念】【恐龙书】笔记四——第四章 线程
Chapter 4: Threads4.1.2BenefitsResponsiveness(一个block,另一个能用)Resource SharingEconomyScalability(input多一點,速度成比例增長)Multicore ProgrammingMulticore systems putting pressure on programmers, ...原创 2019-04-16 21:38:50 · 1160 阅读 · 0 评论 -
losetup简介
losetup: 设置和控制循环设备,这个命令是util-linux软件包的一部分-o 偏移字节数-d 卸载循环设备使用循环设备的一个例子: # dd if=/dev/zero of=~/file.img bs=1024k count=10 # losetup --find --show ~/file.img ...原创 2018-11-26 08:51:17 · 2667 阅读 · 0 评论