목록분류 전체보기 (67)
코가손의 블로그
프로세스가 independent 하다 - 프로세스 끼리 공유하는 데이터 없음 - 프로세스 끼리 메시지 주고받지 않음 프로세스가 cooperating 하다 - 프로세스가 서로 영향을 준다 - 데이터를 공유 한다 "프로세스간 통신 문제 어떻게 해결?" -> IPC(Inter-Process Communication) IPC IPC는 한 컴퓨터 내부에서 2개의 프로세스가 통신하는 것을 말한다. cooperating 프로세스들은 IPC메커니즘이 필요하다. IPC메커니즘은 프로세스 끼리 데이터를 주고 받는 과정이다. IPC모델은 2가지 방법이 있다. 공유 메모리(shared memory) 프로세스 간에 공유가 되도록 설정해놓은 메모리, 모든 프로세스가 접근이 가능하다. 공유 메모리는 처음 생성할 때만 시스템 호출을..
리눅스에서는 fork()로 새로운 프로세스를 생성한다. #include #include #include int main() { pid_t pid; pid = fork(); if (pid > 0) wait(NULL); printf("Hello, Process! %d\n", pid); } if (pid > 0) 부모 프로세스 P0, 자식프로세스 P1 P0은 pid > 0을 만족 wait가 되어 wait queue에 들어간다. 그러므로 P1이 CPU를 점유할 수 있게 된다. P1은 pid가 0이기 때문에 밑의 printf문장을 실행하게 된다. P1은 "Hello, Process! 0"를 출력하고 리턴한다. P1의 메인함수가 return 되면 P0에 자식프로세스(P1)가 끝났다는 인터럽트가 발생 그럼 Wait하..
Process OS가 해야할 가장 기본적인 일은 프로세스를 관리하는 것이다. Stroage 에 있는, 우리가 작성한 프로그램을 메모리에 올린 것을 프로세스 라고 말한다. 메모리에 올라간 프로세스는 CPU를 점유해야 하고 New/Running/Waiting/Ready/Treminated 의 상태를 가진다. New : 프로세스가 만들어지는 과정의 상태 Ready : 실행되기 전, 언제든지 실행 될 수 있는 준비 상태 Running : CPU를 점유하는 실행 상태 Waiting : I/O나 다른 이벤트가 발생하기를 기다리는 상태 Terminated : 프로세스가 다 수행되어서 종료할 때 잠시 생기는 state Running -> Waiting, Waiting -> Ready 현재 프로세스가 더 이상 수행이 안..
컴퓨터가 켜지면 항상 동작하는 프로그램이며 시스템 서비스를 사용자 영역의 응용 프로그램과 연결시켜주는 역할을 한다. services 운영체제가 사용자에게 제공하는 기능들은 다음과 같다. 사용자 인터페이스(User Interface) : 사용자 인터페이스는 크게 명령어 단위로 처리되는 명령어 라인 인터페이스(Command-Line Interface, CLI)와 그래피컬 사용자 인터페이스(Graphical User Interface, GUI)로 나뉜다. 윈도우의 커맨드 창은 CLI, 윈도우에서 화면을 통해 아이콘을 더블클릭하여 실행하는 방식을 GUI 방식이라고 한다. 프로그램 실행(Program execution) : 운영체제를 통해 프로그램을 메모리에 올려 프로세스로 만들고 실행 시키는 것이다. 입출력 연..