'분류 전체보기'에 해당되는 글 87건

  1. 2009.07.23 골치 아픈가?
  2. 2009.07.20 깨지는 중입니다.
  3. 2009.07.11 씨에스타
  4. 2009.07.04 부산대학교 성적관리 프로그램 Ver.0.3 Release 7
  5. 2009.06.24 졸업과제
  6. 2009.06.18 아 뭘 사야 하지?? 6월의 위시 리스트 1
  7. 2009.06.06 최근
  8. 2009.05.30 유닉스 과제 #4
  9. 2009.05.29 웃기지 않니? 정말 이 상황이?
  10. 2009.05.28 090528
잡담2009. 7. 23. 15:52

항상 골치 아플때 마다 내가 정말 이때까지 속편하게 별 고민 없이 살아서 이런가? 하는 생각이 들때도 있다. 하지만

난 꽤나 고생하면서 살아왔다고! 라고 말하고 싶다. 그렇지만 그것이 또 나만의 생각일수도 있기 때매 이게 참 어려운 것이다.

하여간 태종대 공연 장비는 역시 부산에서 빌리면 되는거였다. 그리고 내 몸무게는 지금 얼마나 나가는거지?

한동안 게으르게 지냈더만 또 불어버렸나?? 옆구리 살이 장난아니게 불었던데...

 글쓰는것 역시 게을리 하면 안되겠다. 머리가 안돌아가면 좀 곤란하니까..

그리고 돈 벌 궁리도 좀 해봐야지. 이거 이대로 살다가는 진짜 백수되는게 시간문제아니겠나? 2학기때는 어차피 한과목만 듣는

데 2학기에는 개같이 벌어서 정승처럼 써보자를 목표로 해보자고.

그리고 이놈의 졸과는 역시나 까다롭다. 이거에 지금은 집중해야할때긴 하다.

생활 상식! 이거또한 중요하다. 좀 읽어야지.. 이런게 바로 말발을 살리는 거라고!

'잡담' 카테고리의 다른 글

태종대 공연 후기  (0) 2009.07.27
내일이면 태종대 공연  (0) 2009.07.24
깨지는 중입니다.  (0) 2009.07.20
씨에스타  (0) 2009.07.11
아 뭘 사야 하지?? 6월의 위시 리스트  (1) 2009.06.18
Posted by 태씽
잡담2009. 7. 20. 19:20
정말 제대로 아주 지대로!! 깨지는 중이다. 원래 이렇게 꺠지면 화만 나지만 문제부터 아주 제대로 한번 분석해보도록 하자.

나에게 지금 주어진 큰일이 두가지 정도가 있다 뭐냐하면,

1. 졸업과제
2. 태종대 공연

태종대 공연은 나름대로 잘진행 되어 가고 있다. 일단 하헌성이가 연락이 안와서 살짝 골치 아팠는데 별일 아니었고 뭐 합주가 약간 적은거 같지만 이번주에 열심히 하면 공연은 잘할 수 있을듯 하다. 공연장비 대여도 계산이 되었고, 걱정이 있다면은 장비 옮기는거정도? 뭐 공연은 토요일에 차질없이 진행할 수 있을듯 하다.

졸업과제? 요놈이게 골치가 아픈 것이다. 원래 내가 어떤 문제가 생기면 남에게 잘 물어보지 않았고, 사실 이거 때매 군대에서 고생도 많이 했지만 하필이면 파트너도 좀 비슷한 성격이랄까 이것 때매 근본적인 문제가 발생한거 같다. 일단 이때까지 작성한 프로그램과 연구 내용이 전혀 맞지 않다. 사실 알고리즘 공부는 별로 하지 않고 파트너에게 맡겼는데 그것이 화근이었나?
아님 계속 물어보지 않는 것이 잘못이었나? 뭐 둘다 영향을 미쳤겠지만 발표를 듣다가 어 이게 아닌데.. 라고 생각한이 들정도 였으니까. 좀 아니긴 했었던거 같다. 그래서 신나게 깨졌는데 일단 근본적으로 이게 맞는지 계속 물어봤어야 하는것이 맞았다는 것이다. 좀 아쉬운것은 너무 신경을 안써줬다는 것인데,, 뭐 그거야 우리가 자초한 일이니까 앞으로는 그렇게 하면 안될 것이다.
일단 뭐 어떻게 지시를 받기 전까지는 도저히 방법이 없을듯 한데 이걸 어떻게 한다?? 뭐 결국 최종적인 원인은 나의 게으름,, 항상 어떤 쇼크를 받아야만이 게으름이 없어지는 이 습관부터 고쳐야 할듯한데 어떻게든 해보자! 일단!!!

'잡담' 카테고리의 다른 글

내일이면 태종대 공연  (0) 2009.07.24
골치 아픈가?  (0) 2009.07.23
씨에스타  (0) 2009.07.11
아 뭘 사야 하지?? 6월의 위시 리스트  (1) 2009.06.18
최근  (0) 2009.06.06
Posted by 태씽
잡담2009. 7. 11. 00:39
이탈리아·그리스 등의 지중해 연안 국가와 라틴아메리카의 낮잠 풍습을 말한다. 한낮에는 무더위 때문에 일의 능률이 오르지 않으므로 낮잠으로 원기를 회복하여 저녁까지 일을 하자는 취지이다. 그 유래에 대해서는 정확하지 않지만, 대체로 포르투갈 남부 지방에서 시작되어 에스파냐와 그리스 등의 유럽을 거쳐 멕시코·아르헨티나 등 라틴아메리카 국가들로 퍼졌다고 한다. 시에스타 시간은 나라마다 차이가 있다. 이탈리아에서는 오후 1~3시 30분, 그리스에서는 오후 2~4시까지 이어진다.

시 에스타 중에는 상점들은 물론 관공서도 문을 닫고 낮잠을 즐긴다. 이 때문에 시에스타는 라틴아메리카 사람들의 게으름이나 끈기 부족의 상징처럼 생각되기도 한다. 따라서 에스파냐에서는 생산성을 높이기 위하여 시에스타를 없애자는 움직임이 일어 2005년 12월 관공서의 시에스타를 폐지하였다. 그러나 과학적 연구의 결과로 시에스타는 생물학적인 필요에 의한 것이라는 점이 밝혀졌다. 곧, 30분 정도의 짧은 낮잠은 원기를 회복하고 지적·정신적 능력을 향상시키는 효과가 있다는 것이다.

라고?? 씨에스타 씨에스타 나만의 씨에스타

'잡담' 카테고리의 다른 글

골치 아픈가?  (0) 2009.07.23
깨지는 중입니다.  (0) 2009.07.20
아 뭘 사야 하지?? 6월의 위시 리스트  (1) 2009.06.18
최근  (0) 2009.06.06
웃기지 않니? 정말 이 상황이?  (0) 2009.05.29
Posted by 태씽
컴퓨터/프로그래밍2009. 7. 4. 00:55
부산대학교 학생지원시스템에서는 성적 수정이나, 삭제에 의한 평균평점, 이수학점, 분야별학점들을 계산하는것이 불가능하다. 많은 학생들이 이것을 알고싶을 때 일일히 계산을 해야되는 불편함이 있는데 이 프로그램은 바로 이점을 해결하고 부산대학교 학생들의 원할한 대학생활을 위해서 간단하게 C# 윈폼으로 제작된 프로그램이다.

이 프로그램을 구동하기 위해서는 .NET framework 2.0 이상이 필요하다.

.NET framework 다운 받으로 가기:

http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&DisplayLang=ko
여기가 느리다면

http://file.naver.com/pc/view.html?fnum=93203&cat=35


<사용 방법>
1. 학생지원 사이트에서 전체성적 조회를 한후 필요한 만큼 긁어서 복사한다.
2. 그후 프로그램의 글씨창에 그래로 붙여 넣은 후 성적 계산 버튼을 누른다.

3. 성적계산 버튼을 누르면 선택을 하여 수정 삭제, 그리고 따로 성적 추가가 가능하며 변화에 평점과 이수학점이 바로 계산이 되어 나타난다.

4. 교과목 구분별 성적 계산과 졸업학점을 설정해 몇학점을 더 이수해야 하는지 알고 싶다면 구분별 성적 탭으로 가자. 그후 구분을 선택하고 필요학점에 숫자를 넣은 뒤 계산을 하면 다음과 같은 화면이 나온다.

5. 분류가 정확하지 않거나 전체성적에 대한 필요 이수학점을 알 고 싶다면, 총성적 탭으로 가서 선택 이동을 이용하자. 이는 선택한 과목들을 구분별 성적 탭으로 이동해서 적용시켜준다.




<주의 사항>
1. 이 프로그램은 부산대학교 학생지원 시스템의 규격에만 맞게 만들었다.
2. 금학기 성적 조회 화면에 대한 규격은 미지원이다.
3. 프로그램은 프리웨어로 어디든 배포해도 관계가 없다.(배포해주면 굽신굽신)

※개선하였으면 좋을 사항이라던가 버그 또는 잘못된점을 댓글 또는 ktss1023@paran.com 으로 알려주세요.^.^


<프로그램 다운>

◈ 제가 1.5학점을 잘고려를 안했더군요 고려한 버젼입니다.




Posted by 태씽

중간 보고 내용

문제 분석 및 학습 결과 보고

- 컨테이너, 크레인 환경 분석

- 고려해야할 사항(크레인 간섭 확률, 크레인 작업용이성, 컨테이너 그룹, 높이)

- 등등...

stacking strategy를 선택하고 학습한 내용과 의문점을 발표.

회피 방지의 모듈 제공 여부 확인,

가정
(
크레인이 선석까지 움직이는 거리와 시간은 일정하다고 가정한다.


블록 정보 : 6단 9열 41베이

컨테이너의 정보 : 무게, 목적지, 컨테이너의 높이, 적하 시간, 출하 시간

크레인(2대) 정보 : 현재 작업중인 컨테이너, 앞으로의 작업 일정, 현재 위치정보, 생산성(box/hour)
opt)속도, 가속도
)


설계 내용 보고

GUI, 시뮬레이션 엔진, 실험 데이터 , 장치위치 결정전략, 크레인간섭회피(불확실)


각각의 모듈에 어떤 요소가 있을지 분석을 한다.(알고리즘, 어떤데이터가 들어갈 것인가)

GUI의경우 프로토 타입 제작.



 

'CSE(컴퓨터 공학) > 졸업과제' 카테고리의 다른 글

기존논문  (0) 2009.10.22
항해항만학회학술지  (0) 2009.09.14
Posted by 태씽
잡담2009. 6. 18. 00:32
1. 일단 면바지, 면티, 혹은 체크 셔츠

2. sdhc 4g or 8g 둘중하나.

3. 안경 새로 하나 맞추기

4. 마이크 and 잭

요정도 중에서 이번에 하나만 사자.

그리고 과외 전단지를 붙이자.


'잡담' 카테고리의 다른 글

깨지는 중입니다.  (0) 2009.07.20
씨에스타  (0) 2009.07.11
최근  (0) 2009.06.06
웃기지 않니? 정말 이 상황이?  (0) 2009.05.29
RSS 클리핑 프로그램 설치, WM5 SDK 로 개발  (0) 2009.05.13
Posted by 태씽
잡담2009. 6. 6. 02:45
자신감을 많이 잃어버렸었다. 아니, 정말 몰랐었는데 마침 방을 치우다가 갑자기 생각이 났다.

방을 치우게 된것도 뭔가 안되고 있는것에 탓을 방이 더러운 이유로 치부해버린것은 아닐까 하는 생각이 갑자기 들었다.

그리고 문득 생각하기를 "내가 왜이렇게 자신감이 없지. 기껏해야 하는게 주위 환경 탓이나 하고 말이다." 해버린거다.

그렇다. 최근에 내가 너무 딱딱하게 혹은 슬프게 혹은 부정적으로 살았나 보다.

정말 지금은 긍정의 힘이 필요할때다. 내가 목표하는 바를 이루기 위해 후회 없이 노력하고 "해낸다.", "한다." 이런 생각으로

도전하는것이다. 지금 까지의 생각이 너무 썩어있었다. 이제 다시 생각을 바꾸자.

"할 수 있다."가 아닌 "한다." 의 마음가짐으로 도전하자. 이제 나만의 결전의 시간이 다가오고 있다.

'잡담' 카테고리의 다른 글

씨에스타  (0) 2009.07.11
아 뭘 사야 하지?? 6월의 위시 리스트  (1) 2009.06.18
웃기지 않니? 정말 이 상황이?  (0) 2009.05.29
RSS 클리핑 프로그램 설치, WM5 SDK 로 개발  (0) 2009.05.13
to do보다 did  (2) 2009.05.07
Posted by 태씽
hared memory와 semapore를 사용하여 데이터를 공동관리 하는 두개이상의 프로세스로 구성된 프로그램을 작성하시오
(예 : 계산담당 프로세스와 디스플레이 담당 프로세스)


이과제를 해결하기 위해서 shared memory와 semapore에 대해서 확실히 알고 넘어가야한다.

먼제 세마포어(semapores)에 대해서 알고 넘어가도록 하자.


Semaphores
세마포어
A counter used to provide access to a shared data object for multiple process.
세마포어란 여러 프로세스가 공유된 데이터를 Access 할 수 있게 하는 Counter이다.

To obtain a shared resource a process
프로세스가 공유된 자원을 얻기 위해서는
1.Test the semaphore that controls the resource
세마포어를 테스트 해봐야하는데 그것은 리소스를 컨트롤 한다.
2. If the value of the semaphore is positive, the process can use the resource
세마포어의 값이 양수(positive)이면 프로세스는 자원을 이용할 수 있다.
-The process decrement the semaphore value by 1, indicating that it has used one unit of the resource.
프로세스는 세마포어의 값을 1을 감소시킨다, 그것은 리소스의 하나의 unit을 이용했다는것을 나타낸다.
3.If the value of the semaphore is 0, the process goes to sleep until the semaphore value is greater than 0
만약 세마포어 값이 0이라면 프로세스는 세마포어의 값이 0보다 커질때까지 슬립을 한다.
-When the process wakes up, it returns to sleep
프로세스가 깨어나면 그것은 슬립을 리턴시킨다.

To implement semaphores correctly,
세마포어를 올바르게 구현하려면
The test of a semaphore’s value and the decrementing of this value must be an atomic operation.
세마포어의 값의 테스트와 이값의 감소가 atomic operation이어야 한다.
For this reason, semaphores are normally implemented inside the kernel.
이런 연유로 세마포어는 커널 안에서 일반적으로 구현이 된다.


이론적 형태의 세마포어

-네덜란드의 이론가 E.W.Dijkstra가 프로세스의 동기화 해결책으로 제안
-세마포어 (sem)은 다음과 같이 연산이 허용되는 정수형 변수

p(sem) or wait(sem)
if (sem != 0)
    decrement sem by one
else
    wait until sem becomes non-zero

v(sem) or signal(sem)

if (queue of waiting processes not empty)
restart first process in wait queue
else
increment sem by one

-두 연산은 모두 atomic operations
`sem을 변경할 수 있는 프로세스는 한 순간에 오직 하나뿐이다.

세마포어의 좋은점: 세마포어의 불변특성 (unvariant)
-(semaphore’s initial value + number of v operations – number of completed p operations) >= 0
세마포어는 다방면으로 사용될 수 있다.
-가장 단순한 경우는 프로그램의 특정한 부분을 수행하는 프로세스가 한 순간에 오직 하나만 존재하도록 하는 mutual exclusion (상호배제)를 보장.

-예제:
(number of completed p operations – number of v operations) <= initial value of semaphore sem의 초기값이 1이면
(number of completed p operations – number of v operations) <= 1
즉 P와 V사이에 있는 문장들은 한 순간에 오직 하나의 프로세스에 의해서만 수행된다.

이런 이론으로 Unix에는 세마포어가 구현이 되어 있다. 유닉스에 세마포어 시스템 호출은 어떻게 이루어지는지 한번 살표보도록 하자. 커널에서는 세마포어를 위한 스트럭처를 이용하여 세마포어를 관리하게 된다. 이때 사용하는 스트럭처가 다음의 smid_ds이다.

struct semid_ds{
  struct ipc_perm sem_perm; //세마포어에 대한 접근권한
  struct sem *sem_base; /* ptr to first semaphore */
  ushort sem_nsems;     /* # of semaphores in set */
  time_t sem_otime;     /* last-semop() time *///마지막으로 세마포어와 관련된 작업을 수행하는 시간
  time_t sem_ctime;     /* last-change time *///마지막으로 스트럭처의 데이터들이 업데이트 된 시간
};

이제 Shared Memory에 대해서 알아보자.

Shared memory란 말그대로 프로세스들이 특정 메모리 영역을 공유하도록 만든 뒤, 이 공간을 이용하여 통신을 수행하는 기법이다. 메모리를 서로 공유하는 프로세스들은 공유 가상 메모리를 가리키는 테이블 엔트리를 가지게 된다.

다른 IPC 기법들과 마찬가지로 공유메모리는 킷값을 이용하여 잡근 및 관리가 된다. 공유 메모리 또한 프로세스 동기화가 필요하기 떄문에 세마포어 등을 이용하여 자원에 대한 관리를 해주어야 한다. 

유닉스 시스템은 shm_segs라는 벡터를 이용하여 공유 메모리를 관리하게 된다. 그리고 벡터속에는 shmid_ds라는 스트럭처가 저장이 되는데 shmid_ds를 이용하여 공유메모리 정보를 저장하게 된다. 

이것을 토대로 프로그램을 작성해보자.  프로그램은 두개의 프로그램으로 나뉘고 하나의 프로세스는 메시지를 받으려고 기다리는 프로세스이고 다른 하나는 메세지를 입력하는 프로세스가 될것이다. 이것을 shared memory와 세마포어를 이용해서 작성 하였다.

메시지를 보내는 프로그램은 우선 프로그램이 실행이 되면 세마포어의 값을 1감소시키고 메시지 입력을 대기한다. 메시지를 입력하면 세마포어의 값을 하나더 증가 시킨다.

메시지를 받는 프로그램은 세마포어를 감소하고 메시지를 출력한뒤 세마포어를 증가시키는데 세마포어가 보내는 프로그램쪽에서 차지하고 있다면 계속 대기상태가 되게 될것이다. 프로그램의 소스코드는 다음과 같다.


메시지를 보내는 프로그램
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
 
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
//공유 메모리 사이즈 설정
#define SIZE 64
 
//이프로세스는 상대편 프로세스가 메시지를 입력할때까지는 process가 돌면 안된다. 
//세마포어를 이용해서 막아보자
 
int main(int argc, char *argv[])
{
    //세마포어와 shared memory 변수선언
    void *s_memory = (void *)0;
    char *buffer;
    int semId, proId, smId;
    int isRun = 1;
 
    struct sembuf semB;
     
    //shmget을 이용하여 공유메모리를 확보한다.
    smId = shmget((key_t)9000, SIZE, 0666|IPC_CREAT);
    if(smId == -1)
    {
        printf("shmget 실행실패\n");
        return 0;
    }
 
    //shmat을 이용하여 공유 메모리 주소 얻기
    s_memory = shmat(smId, (void *)0, 0);
    if(s_memory == (void *)-1)
    {
        printf("shmat 실행실패\n");
        return 0;
    }
 
    //공유메모리 주소와 내부 변수 포인터연결
 
    buffer = (char *)s_memory;
 
 
    //sembuf의 초기값 설정
 
    semB.sem_flg = SEM_UNDO;
    semB.sem_num = 0;
 
    //semget을 이용해서 세마포어 ID를 구한다.
    semId = semget((key_t)1234, 1, 0666 | IPC_CREAT);
 
    //세마포어 초기값 설정
    if(semctl(semId, 0 , SETVAL, 1) == -1)
    {
        fprintf(stderr, "세마포어 초기화 실폐\n");
        exit(0);
    }
    //본프로세스의 PID출력
    printf("본프로세스의PID값은 : %d\n", getpid());
     
     
 
 
    //프로세스의 입무를 수행하기 전에 세마포어값을 감소 후 수행 그다음 세마포어 값을 다시 증가 시킨다.
    while(isRun)
    {
        //세마포어에 마지막으로 수정을 가한 프로세스 PID 출력
        proId = semctl(semId, 0, GETPID, 0);
        printf("세마포어를 변경한 마지막 PID: %d\n", proId);
 
             
        //세마포어의 값을 감소시킨다.
        semB.sem_op = -1;
        if(semop(semId, &semB, 1) == -1)
        {
            fprintf(stderr, "세마포어 값감소 실패\n");
            exit(0);
        }
         
        printf("메시지입력 : "); 
        scanf("%s",buffer);
               
        //quit을 보내면 종료
        if(!strcmp(buffer, "quit"))
        {
            break;
        }

 

        //세마포어 값을 증가시킨다.
        semB.sem_op = 1;
        if(semop(semId, &semB, 1) == -1)
        {
            fprintf(stderr, "세마포어 값증가 실패\n");
            exit(0);
        }
    }
 
    //프로세스와 공유메모리 분리
 
    if(shmdt(s_memory) == -1)
    {
        printf("shmdt 실행실패\n");
        return 0;
    }
 
    return 1;
}


메시지를 받는 프로그램

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
 
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
//공유 메모리 사이즈 설정
#define SIZE 64
 
//이프로세스는 상대편 프로세스가 메시지를 입력할때까지는 process가 돌면 안된다. 
//세마포어를 이용해서 막아보자
 
int main(int argc, char *argv[])
{
    //세마포어와 shared memory 변수선언
    void *s_memory = (void *)0;
    char *buffer;
    int semId, proId, smId;
    int isRun = 1;
 
    struct sembuf semB;
     
    //shmget을 이용하여 공유메모리를 확보한다.
    smId = shmget((key_t)9000, SIZE, 0666|IPC_CREAT);
    if(smId == -1)
    {
        printf("shmget 실행실패\n");
        return 0;
    }
 
    //shmat을 이용하여 공유 메모리 주소 얻기
    s_memory = shmat(smId, (void *)0, 0);
    if(s_memory == (void *)-1)
    {
        printf("shmat 실행실패\n");
        return 0;
    }
 
    //공유메모리 주소와 내부 변수 포인터연결
 
    buffer = (char *)s_memory;
 
 
    //sembuf의 초기값 설정
 
    semB.sem_flg = SEM_UNDO;
    semB.sem_num = 0;
 
    //semget을 이용해서 세마포어 ID를 구한다.
    semId = semget((key_t)1234, 1, 0666 | IPC_CREAT);
 
    //세마포어 초기값 설정
    if(semctl(semId, 0 , SETVAL, 1) == -1)
    {
        fprintf(stderr, "세마포어 초기화 실폐\n");
        exit(0);
    }
    //본프로세스의 PID출력
    printf("본프로세스의PID값은 : %d\n", getpid());
     
     
 
 
    //프로세스의 입무를 수행하기 전에 세마포어값을 감소 후 수행 그다음 세마포어 값을 다시 증가 시킨다.
    while(isRun)
    {
        //세마포어에 마지막으로 수정을 가한 프로세스 PID 출력
        /*proId = semctl(semId, 0, GETPID, 0);
        printf("세마포어를 변경한 마지막 PID: %d\n", proId);*/
 
            
        if(!strcmp(buffer,""))continue; //일단 버퍼가 없으면 그냥 계속 지나쳐간다.
        
        //세마포어의 값을 감소시킨다.
        semB.sem_op = -1;
        if(semop(semId, &semB, 1) == -1)
        {
            fprintf(stderr, "세마포어 값감소 실패\n");
            exit(0);
        }
 
        
        printf("받은 메시지 : %s\n", buffer); //메시지를 출력해준다.
        
        //quit을 받으면 종료
        if(!strcmp(buffer, "quit"))
        {
            break;
        }
        
 
        //세마포어 값을 증가시킨다.
        semB.sem_op = 1;
        if(semop(semId, &semB, 1) == -1)
        {
            fprintf(stderr, "세마포어 값증가 실패\n");
            exit(0);
        }
        
 
    }
 
    //프로세스와 공유메모리 분리
 
    if(shmdt(s_memory) == -1)
    {
        printf("shmdt 실행실패\n");
        return 0;
    }
 
    //공유메모리 제거
    if(shmctl(smId, IPC_RMID, 0) == -1)
    {
        printf("shmctl 실행실패\n");
        return 0;
    }
     
 
    //세마포어를 제거한다.
    if(semctl(semId, 0, IPC_RMID, 0) == -1)
    {
        fprintf(stderr, "세마포어 제거 실패\n");
        exit(0);
    }
 
 
    return 1;
}


실행 결과는 다음과 같다.



다음과 같이 메시지를 주고 받을 수 있게 프로그램이 수행된다.







'CSE(컴퓨터 공학) > 유닉스 시스템' 카테고리의 다른 글

유닉스 과제 #3  (0) 2009.05.06
유닉스 과제2  (0) 2009.04.08
Posted by 태씽
잡담2009. 5. 29. 01:09
오늘 노무현 전 대통령의 영결식이란다. 나는 그분에 대해서 특별히 잘아는 것도 아니고 그분이 5년의 임기중에 계실 때

난 그중 2년은 군인, 그중 2년은 철모르던 대학생시절, 나머지 1년은 제대해서 세상에 관심가질틈 없이 내 앞가림도 하기 힘들

었던 시절이었다라는 변명을 한번 해본다. 그분이 대통령 선거 운동을 하실때는 난 고3이었다. 이 때가 그나마 내가 노전대통

령에 가장 관심이 많았을 때인데 그것도 신해철을 좋아했었기 때문이었다. 그때 신해철은 노전대통령의 지지자였고 자신의 라

디오 프로그램을 잠시 중단하고 그분을 지지하는 라디오 방송을 할때였다. 신해철을 좋아하던 나는 그방송 조차도 무작정 들었

었고 그 때 대통령 후보 노무현이라는 사람에 대해 알게되었고 자연히 그분을 지지하게 되었다. 그리고 선거권이 없어 투표도

할 수 없었지만 그분이 대통령에 당선되었을 때는 나는 세상이 좀 더 살기 좋아질거라는 생각을 했다. 하지만 그 후 5년동안

나는 세상보는 눈이 없었나 보다. 그분이 이룬 업적보다도 '탄핵', '이게다 노무현 때문이다', '노무현스럽다' 등등이 내 눈과

귀를 막았다. 이것참 웃기지 않나? 그분이 이루신 훌륭한 업적은 그분이 가시고 나서야 우리들의 눈앞에 나타났다는게?

참 그분이 대통령일때는 국민이 바보였다. 하지만 지금 정부에 의해 우리가 오히려 눈을 떳다는게 더웃기다. 왜 게속 바보라도

알아채고 열받게 하는 행동을 하나? 왜 전대통령을 위한 예우를 차릴수 없게 하는가? "너희가 사람이냐?, 짐승이지?" 하는 말은

아무 소용이 없다. 단지 민주주의 국가에서 이런일을 벌이는 정부가 이해가 가지 않고 웃길 뿐이다.

내일이면 영결식이다.

진정으로 그를 추모하고 싶지만 사람들틈에 휩쓸리기 싫어 봉하마을도 가지 않았다. 아주 가까운날 담배 하나 들고 홀연히 가

서 노래 한곡 불러드리고 오고 싶은게 내생각이다.

"정말 당신을 추모합니다. 이제 원하는 대로 사세요. 그곳에 가면 시간이 지금보다 더 많겠죠? 당신이 원하고 바래왔던 삶을 그곳에서는 살 수 있길 바래봅니다."

'잡담' 카테고리의 다른 글

아 뭘 사야 하지?? 6월의 위시 리스트  (1) 2009.06.18
최근  (0) 2009.06.06
RSS 클리핑 프로그램 설치, WM5 SDK 로 개발  (0) 2009.05.13
to do보다 did  (2) 2009.05.07
정보처리기사 등록  (0) 2009.04.23
Posted by 태씽
2009. 5. 28. 18:19

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.