- 博客(3)
- 资源 (1)
- 收藏
- 关注
原创 2021-07-14
进程阻塞的实现进程使用read函数读取资源,但是资源不可达,一直读取增加CPU的负担,可以将进程设置为阻塞状态,当资源可达,中断唤醒该进程。在内核中的读取函数1、将当前进程设置为可被信号打断的状态 set_current_state(TASK_INTERRUPTIBLE);2、将当前进程加入到等待队列中 __add_wait_queue(wait_queue_head_t *head, wait_queue_t *new);3、将当前进程的执行权调度出去 schedule();
2021-07-14 23:28:35
131
原创 2020-08-08
关于字符串使用注意的关键点1.存储的地方char *p = "lxshs";/* 1. p是一个指针变量,“lxshs”是'l'的首地址值,p可以在栈区也可以在全局区,“lxshs”在常量区, 2. 通过*p = 'a',是会出现段错误的,常量区的内容不可修改,p = "lxshchc",这样做是可以的, 3. 是因为“lxshchc”是l的首地址,也在常量区,只是p指向的内容换了一个地方,并没用修改常量区的内容*/strlen与sizeof的区别strlen:是函数,传字符串首地址
2020-08-08 08:40:01
109
原创 select函数
关于多路IO转接场景:在读设备的时候,任务比较多,一旦阻塞,后面的任务就不能完成,本来阻塞挺好的(可解决CPU利用率高的问题),就是由于后面的任务都会被阻塞,那就使用非阻塞的,这样问题是勉强可以解决(while循环),CPU的使用率就会很高,最好是有个提醒的,当真正的文件描述符发生了变化(监视这个现场),再去读,现场不发生变化,我就不阻塞。 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *
2020-07-19 22:30:23
213
stm32f103c8t6 开发超声波测距成功.zip
2019-09-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人