2016-07-20 23:05
⁄ 工业·编程
⁄ 共 2912字
在调试程序的过程中,可以自由地查看相关的源代码(如果有源代码的话)是一项最基本的特性。
一些IDE在这方面做得相当好,GDB当然也提供了这项特性,虽然不如IDE直观,但在一定程度上要比IDE更加灵活和快捷。
GDB之所以能够知道对应的源代码,是因为调试版的可执行程序中记录了源代码的位置;因为源代码的位置在编译之后可能会移动到其它地...
GDB, 软件调试阅读全文
2016-07-19 22:58
⁄ 工业·编程
⁄ 共 6745字
读写锁是把共享资源的访问分为读者和写者。读者能共享访问,写者能进行写操作.很明显这个比简单的互斥访问要好很多。提高性能效率我的理解是在设计上遵循以下原则
1.锁的深度 范围
2.多线程对共享资源访问的频率 次数
3.让访问尽量可控。
读写锁我觉得就是让这种访问可控.
一、读写锁的特征
1.当读写锁是写加锁状态时, 在这个锁被解锁之前, 所有试图对这个锁加锁的线程都会被阻塞.
2.当读写锁在读加锁状态时, ...
多线程编程阅读全文
2016-07-18 22:53
⁄ 工业·编程
⁄ 共 917字
互斥锁:mutex,用于保证在任何时刻,都只能有一个线程访问该对象。当获取锁操作失败时,线程会进入睡眠,等待锁释放时被唤醒
自旋锁:spinlock,在任何时刻同样只能有一个线程访问对象。但是当获取锁操作失败时,不会进入睡眠,而是会在原地自旋,直到锁被释放。这样节省了线程从睡眠状态到被唤醒期间的消耗,在加锁时间短暂的环境下会极大的提高效率。但如果加锁时间过长,则会非常浪费CPU资源
读写锁:rwlock,区分读和写,...
多线程编程阅读全文
2016-07-17 22:47
⁄ 工业·编程
⁄ 共 1481字
一、gdb简介
gdb:GNU debugger
UNIX及UNIX-like下一个强大的命令行的调试工具
gdb调试的整体架构如下图所示:
可以发现gdb调试不管是本地调试还是远程调试,都是基于ptrace系统调用来实现的
二、ptrace
ptrace系统调用的原型:
long ptrace(enum __ptrace_request request, pid_t pid,void *addr,void *data);
ptrace系统调用提供了一种方法,让父进程可以观察和控制其它进程的执行,检查和改变其核心映像及寄存...
GDB, 软件调试阅读全文
2016-07-16 22:44
⁄ 工业·编程
⁄ 共 2025字
二者的定义:
当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你。 Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cookie来辨认使用者,以方便送出使用者量身定做的内容,像是 ...
Cookie, 区别阅读全文
2016-07-15 22:40
⁄ 工业·编程
⁄ 共 5318字
文章目录
一、死锁的定义
三、如何避免死锁
一、死锁的定义
多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。 下面我们通过一些实例来说明死锁现象。 先看生活中的一个实例,2个人一起吃饭但是只有一...
多线程编程阅读全文
2016-07-14 22:33
⁄ 工业·编程
⁄ 共 5658字
在对嵌入式进行调试之前,必须要生成调试器。经典地,Linux平台下的调试器为gdb。
1、下载gdb: 下载地址为: http://www.gnu.org/software/gdb/download/ 按照一般的想法,最新版本越好,因此下载7.2这个版本。当然,凡事无绝对。 我们以gdb-7.2.tar.bz2 这个文件为例。
2、解压缩: $ tar jxvf gdb-7.2.tar.bz2 注:小技巧:Linux下一般压缩文件后缀为.tar.bz2和.tar.gz,它们解压...
GDB, 开源, 软件调试阅读全文
2016-07-13 16:44
⁄ 工业·编程
⁄ 共 1355字
近些年,编程语言Python的热度越来越高,因为Python简单,学起来快,是不少程序员入门的首选语言。那么学习Python后可以有哪些方面的发展呢?
0、WEB开发
Python拥有很多免费数据函数库、免费web网页模板系统、以及与web服务器进行交互的库,可以实现web开发,搭建web框架,目前比较有名气的Python web框架为Django。从事该领域应从数据、组件、安全等多领域进行学习,从底层了解其工作原理并可驾驭任何业内主流的Web框架。
1. ...
Python阅读全文
2016-07-12 06:34
⁄ 工业·编程
⁄ 共 4492字
一直unix在我心目中的地位都很高,unix的稳定性和完整性是windows和linux所无法匹敌的。而且从另一种意义上说,linux其实也算是从unix里的一个分支。我曾有幸安装过AIX,不过当时对unix/linux系统了解还少,仅仅只在会装的程序。受致于硬件环境的局限,以致无缘再使用。而HP-unix也一样,都是只对自己的cpu硬件进行支持。而平民化了的unix里比较出名的当数BSD家族了。就连风光无限的苹果也是从这个分支里演变出来的。
BSD家族...
BSD, FreeBSD, NetBSD, OpenBSD, 区别, 操作系统阅读全文
2016-07-11 06:17
⁄ 工业·编程
⁄ 共 4293字
NetBSD 是一个自由的,高可移植性的类UNIX的操作系统,它可在很多硬件平台上运行,从64位的Alpha服务器到手持设备。它完美的代码设计和先进的体系特点使它适合于研究和开发环境,并且用户可以从完全的源代码中得到支持。很多应用程序都可以容易得到。
NetBSD是一种对硬功体系结构支持广泛的操作系统,当前版本支持的硬件体系有:
DEC ALPHA, (STRONG) ARM32, ATARI, BEBOX, COMMODOREAMIGA & MACROSYSTEMS DRACO, HP 300, I...
BSD, NetBSD, 操作系统阅读全文