일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |
- python
- 파이썬
- 데이터베이스
- 도커 시작하기
- 스트림셋
- 자바
- 도커
- 도커 elk
- nvidia docker
- 클라우드
- 정보처리기사
- c++
- docker
- ansible install
- 푸시푸시
- streamsets 강의
- 도커 mysql
- 코딩
- C언어
- mysql docker
- 앤서블 설치
- 스트림셋이란?
- c
- mysql on docker
- 백준
- MySQL
- java
- 알고리즘
- 데이트
- elk stack
- Today
- Total
리그캣의 개발놀이터
네트워크 - 프로세스 본문
3장. 프로세스
프로세스
실행중인 프로그램, cpu가 서비스를 제공해 주는 단위
프로세스의 모드
사용자모드
사용자의 권한으로 명령이 실행
커널모드
커널의 권한으로 실행, 하드디스크를 읽기 위한 read() 함수, 입출력 상태일때는 커널 모드로 바뀐다.
프로세스의 상태
실행(running) 상태 - 현재 cpu에서 서비스를 받고 있는 상태 / 사용자 모드에서 작동
블록(waiting) 상태 - 실행 가능상태임에도 불구하고 순서문제로 기다리는 상태. 내 프로그래밍의 의해서 stop 시킨 것.
중단(stopped) 상태 - 블록상태랑 같음. 프로세스 의지와 관계없이 외부에서 stop 시킨 것.
좀비(zombie) 상태 - 프로세스가 이미 실행이 끝났지만 프로세스가 종료가 안 된 상태.
p.87~88에 자세히 설명 되었으니 읽어보기 바람.
운영체제에서 소개가 되었던 내용 들임.
프로세스의 메모리 배치
스택 - 프로그램 실행시에만 엑세스 할 수 있는 값들
힙 - malloc()이 할당한 공간으로 프로그램 실행 후에도 엑세스 가능 하다.
스택과 힙 - ppt 한번 보기
fork
새로운 프로세스를 만들기 위해 주로 사용
fork()를 호출한 프로세스의 이미지를 복사하여 새로운 프로세스를 생성
부모 / 자식 프로세스
부모 프로세스 : fork()를 호출한 프로세스
fork()의 리턴값 : 자식프로세스의 PID
자식 프로세스 : fork()에 의해 새로 생성된 프롯스
fork()의 리턴값 : 0
프로세스의 공유
부모와 자식 프로세스는 변수를 서로 공유하지 않음
개설한 파일이나 소켓은 프로세스 이미지 외부에 존재하므로 공유(파일 디스크립터는 공유된다.)
부모프로세스의 기능을 자식프로세스가 갖게된다.
p92 3-2를 보셈.
fork() 사용 예
부모와 자식 프로세스가 같은 이름의 변수 값을 각각 증가시키고 그 결과를 확인해 보는 프로그램 fork_test.c
토크 서버/클라이언트 프로그램
서버
listen()
accept()&fork()
send(),recv()
클라이언트
connect();
send(), recv()
'프로그래밍 기본 > 네트워크 프로그래밍' 카테고리의 다른 글
OSI 7계층 동영상으로 배우기 (0) | 2019.05.04 |
---|---|
네트워크 - 소켓 프로그래밍 (0) | 2018.01.25 |
네트워크 - 성능 척도 요소 (0) | 2018.01.25 |
네트워크 - 서버 구현 기술 연결형과 비연결형 (0) | 2018.01.25 |
네트워크 - 서버 모델 (0) | 2018.01.25 |