위는 시그널 함수의 원형이다.Sigfunc는 커널이 실행할수 있도록 만들어 놓은 프로시져이다. (함수포인터) signal함수가 정상적으로 리턴되면 Sigfunc형 포인터이다. 어떤 함수를 가리키는 포인터이다라고 생각하면 될것같다. signal함수는 소프트웨어 인터럽트라고도 불린다. 어떤 프로세스에서 다른 프로세스에게 어떤 이벤트가 발생했다는것을 알려주기 위해서 시그널을 사용하기 때문에 그렇게 불린다. 또는 커널이 프로세스에게 인터럽트를 걸기도 한다. int kill(pid_t pid, int sig);(죽일 프로세스 아이디, 시그널 종류) 자식 프로세스가 죽었을때 SIGChild라는 이벤트가 발생하는데 커널이 이 이벤트가 발생하게 되면 signal 함수로 등록해 놓았던 시그널 핸들러를 실행시킨다.(이것을..
str_cli함수는 사용자로부터 입력을 받아서 서버에게 보내고, 서버는 받은 문자열을 그대로 돌려주고 그 돌려준 문자열을 다시 화면에 출력하게 된다.Readline은 내부적으로 read시스템콜을 사용하게 되는데, read시스템콜은 상대방으로부터 EOF(End of File)이벤트가 발생했을때 0을 리턴하게 된다. EOF이벤트는 상대방이 FIN메시지를 보냈을때 발생하게 된다. Ctrl+D를 누르게 되면 EOF이벤트가 발생하게 되고 그렇게 되면 Fgets는 NULL을 리턴하게 된다. 그렇게 되면 반복문이 종료되고 str_cli함수가 종료되게 되면 그다음 exit(0)를 호출해서 상대방에게 FIN메시지를 보내게 된다. 서버 프로그램과 클라이언트 프로그램을 같은 기계에서 실행시키는 상황을 생각해보자.서버 프로그..
PSTN은 집전화망이다.GMSC로 전화가 왔다는 신호가 도착.HLR에는 모든 사용자의 위치 정보가 저장되어있다.(현재 사용자가 어디있는지 알고있음)현재 사용자가 연결되어있는 MSC에 연결되어있는 데이터베이스인 VLR에 연결하게 된다. 이때 MSRN도 넘겨준다.(MSRN은 사용자 위치에 관한 임시번호를 의미한다)HRL이 VLR에 들렸다가 다시 돌아온다.(MSRN을 받기 위해서 굳이 VLR을 들린것)MSC단위로 사용자의 위치가 추적 된다. 사용자에게 전화가 왔다는걸 알리기 위해 current MSC에 포워딩한다.MSC에 연결되어있는 모든 BTS에게 paging을 하게 된다.(엄청 넓은 지역에 특정 단말기에 전화왔다는걸 알려준다)MS가 응답을 하게 된다.VLR과 인증을 한 다음에 커넥션이 연결이 된다(회선하나..
프로세스들을 하나 만들려면 별도의 주소공간을 할당해야하고 PCB(프로세스 테이블의 한 엔트리)를 만들어야 하기 때문에 좀 무겁다.그렇기 때문에 한 프로세스내에 같은 일이 반복적으로 발생할때에는 쓰레드를 여러개 생성하는게 프로세스를 여러개 생성하는거보다 훨씬 좋다.퍼포먼스가 향상된다( 어떤 쓰레드는 블럭 되더라도 다른 쓰레드는 여전히 실행이 가능하므로)또한 쓰레드는 여러개의 씨피유가 있는 환경에서 병렬적으로 동시에 실행될수 있기 때문에 성능이 대폭 향상된다. 만약 워드 프로세서 응용프로그램을 실행중이라고 치자.사용자로부터 키보드 입력을 받아서 화면에 출력해주는 일이 필요하고, 사용자가 첫 페이지에 한줄을 지웠을때 그 뒤에 입력 되어있던 글들을 앞으로 땡겨주는 일이 또 필요하고, 주기적으로 디스크에 저장을 ..
고객 관리 담당자는 고객 관리 응용프로그램을 통해서 고객 데이터 파일을 관리하게 되고 주문관리 담당자는 주문 관리 프로그램을 사용하게 된다. 근데 이렇게 되면 중복된 내용이 저장 되게 된다.(파일 시스템의 문제점1)고객 데이터 파일에서 수정한 고객의 연락처가 주문 데이터 파일에서는 수정되지 않았으므로 데이터의 일관성이 깨지게 된다.다시 말해서 데이터가 올바르지 않게 저장된다(데이터 무결성 위반) => (파일 시스템의 문제점2) 또한 사용하는 파일에 맞게 프로그램을 짜기 때문에 데이터 파일의 구조가 바뀌면 응용프로그램을 다시 짜야 된다는 문제가 있다(파일 시스템의 문제점3) 고객 관리 프로그램에서 주문관리 프로그램의 파일을 공유 할수 없고 보안,회복 기능이 부족하다 (파일 시스템의 문제점4) 파일에 대한 ..
부모 프로세스에서 Fork()시스템 콜을 호출하게 되면 호출 직전까지의 정보들이 자식 프로세스에게 거의 그대로 복제 된다.이때 스택과 힙 영역이 복제 되고 PC값도 복제 된다. 프로세스 별로 또한 파일 디스크립터 테이블을 가지고 있다.27번 fd : 어떤 소켓28번 fd : 또다른 어떤 소켓이런식으로 정리가 되어 있는 테이블이다. 부모 프로세스가 fork를 호출하는 시기는 accept() 시스템 콜을 해서 커넥트 소켓이 생성된 다음이다. 이 커넥트 소켓의 fd가 27번이라고 하면자식 프로세스의 파일 디스크립터 테이블에도 27번에 그 소켓에 대한 링크 정보가 복제가 될것이다. 그렇게 되면 27번 번호표를 받은 그 소켓을 가리키는 번호가 2개가 된 것이다. 부모와 자식 프로세스에서 그 소켓의 번호(27번)는..
클릭
- Total
- Today
- Yesterday
- Next.js
- design system
- react hooks
- atomic design
- rendering scope
- hydrate
- Action
- server side rendering
- reducer
- Polyfill
- es6
- reflow
- webpack
- javascript
- props
- reactdom
- typescript
- mobx
- state
- computed
- promise
- async
- useEffect
- Babel
- storybook
- type alias
- await
- react
- return type
- useRef
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |