Éú²úÕß Ïû·ÑÕßÎÊÌâʵÏÖ (linuxÏÂCÓïÑÔ)
²Ù×÷ϵͳµÄÒ»¸ö¾µäÎÊÌâÊÇ"Éú²úÕß-Ïû·ÑÕß"ÎÊÌâ, ÕâÉæ¼°Í¬²½ÐźÅÁ¿ºÍ»¥³âÐźÅÁ¿µÄÓ¦ÓÃ, ÔÚÕâÀï,ÎÒÓÃÏ̵߳Äͬ²½ºÍ»¥³âÀ´ÊµÏÖ.
/*
* author ÕÅÎÄ
* 2008/06/20
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h>
#define N 2 // Ïû·ÑÕß»òÕßÉú²úÕßµÄÊýÄ¿
#define M 10 // »º³åÊýÄ¿
int in = 0; // Éú²úÕß·ÅÖòúÆ·µÄλÖÃ
int out = 0; // Ïû·ÑÕßÈ¡²úÆ·µÄλÖÃ
int buff[M] = {0}; // »º³å³õʼ»¯Îª0£¬ ¿ªÊ¼Ê±Ã»ÓвúÆ·
sem_t empty_sem; // ͬ²½ÐźÅÁ¿£¬ µ±ÂúÁËʱ×èÖ¹Éú²úÕ߷ŲúÆ·
sem_t full_sem; // ͬ²½ÐźÅÁ¿£¬ µ±Ã»²úƷʱ×èÖ¹Ïû·ÑÕßÏû·Ñ
pthread_mutex_t mutex; // »¥³âÐźÅÁ¿£¬ Ò»´ÎÖ»ÓÐÒ»¸öÏ̷߳ÃÎÊ»º³å
int product_id = 0; //Éú²úÕßid
int prochase_id = 0; //Ïû·ÑÕßid
/* ´òÓ¡»º³åÇé¿ö */
void print()
{
int i;
for(i = 0; i < M; i++)
printf("%d ", buff[i]);
printf("\n");
}
/* Éú²úÕß·½·¨ */
void *product()
{
int id = ++product_id;
while(1)
{
// ÓÃsleepµÄÊýÁ¿¿ÉÒÔµ÷½ÚÉú²úºÍÏû·ÑµÄËÙ¶È£¬±ãÓÚ¹Û²ì
sleep(1);
//sleep(1);
sem_wait(&empty_sem);
pthread_mutex_lock(&mutex);
in = in % M;
printf("product%d in %d. like: \t", id, in);
buff[in] = 1;
print();
++in;
pthread_mutex_unlock(&mutex);
sem_post(&full_sem);
}
}
/* Ïû·ÑÕß·½·¨ */
void *prochase()
{
int id = ++prochase_id;
while(1)
{
// ÓÃsleepµÄÊýÁ¿¿ÉÒÔµ÷½ÚÉú²úºÍÏû·ÑµÄËÙ¶È£¬±ãÓÚ¹Û²ì
sleep(1);
//sleep(1);
sem_wait(&full_sem);
pthread_mutex_lock(&mutex);
out = out % M;
printf("prochase%d in %d. like: \t", id, out);
&nb
Ïà¹ØÎĵµ£º
Æô¶¯armlinux£¬bootloader±ØÐëÌṩÏÂÃæ¼¸²½£º
1£® ÉèÖò¢³õʼ»¯ram
2£® ³õʼ»¯Ò»¸ö´®¿Ú
3£® ¼ì²â´¦ÀíÆ÷ÀàÐÍ
4£® ÉèÖÃÄں˱ê¼ÇÁбí
5£® µ÷ÓÃÄÚºËÓ³Ïñ
1. ÉèÖò¢³õʼ»¯ram
bootloaderÒªÕÒµ½²¢³õʼ»¯ÏµÍ³ÖÐËùÓе ......
¡¡¡¡ ¶àÏ̳߳ÌÐòÉè¼ÆµÄ¸ÅÄîÔçÔÚÁùÊ®Äê´ú¾Í±»Ìá³ö£¬µ«Ö±µ½°ËÊ®Äê´úÖÐÆÚ£¬UnixϵͳÖвÅÒýÈë¶àÏ̻߳úÖÆ£¬Èç½ñ£¬ÓÉÓÚ×ÔÉíµÄÐí¶àÓŵ㣬¶àÏ̱߳à³ÌÒѾµÃµ½Á˹㷺µÄÓ¦Óᣱ¾ÎÄÎÒÃǽ«½éÉÜÔÚLinuxϱàд¶à½ø³ÌºÍ¶àÏ̳߳ÌÐòµÄһЩ³õ²½ÖªÊ¶¡£
------------------------------------------------------------------------ ......
×÷Õߣº51cto
http://www.ccw.com.cn 2009-02-27 11:06:03
µ±Äã¶Ô±ðÈË˵£¬“ÎÒÒªÂòÁ¾³µ¡£”ËûÂíÉϾͻáÎÊÄ㣺“ʲô³µ£¿”¸£ÌØ¡¢·áÌï¡¢»¹ÊDZ¾ÌÊÇË«ÃÅÅܳµ¡¢Ð¡½Î³µ¡¢»¹ÊÇÃæ°ü³µ£¿µ±È»£¬»¹ÓÐÆäËûÀàËÆµÄÎÊÌâ¡£
ͬÑù£¬Èç¹ûÄã˵“ÎÒÏë°²×°Linux£¡”Äã»á±»Îʵ½Í¬ÑùµÄÎÊÌ⣺ÄĸöLinu ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
ÔÚ±¾ÎÄÖУ¬
Linux
ÊÇÖ¸²Ý¸ù°æµÄ
Linux
£¬Ò²¾ÍÊÇ˵£¬
Linux
ÊÇÕý×ÚµÄ
GNU/Linux
¡£ÏÖÔÚµÄÎÊÌâÊÇ£¬ÔÚÖйú£¬ÎªÊ²Ã´
GNU/Linux
ÒªÔ¶ÀëÓ²ÅÌ£¿ÕâÊÇʲôÔÒòÔì³ÉµÄ£¿
......