CS 강의/운영체제 (3) 썸네일형 리스트형 [팀] 세마포어(Semaphore) 개념과 예시 세마포어(Semaphore) 란? 두개 이상의 프로세스가 공유메모리와 같은 공유 자원에 접근할 때, 동기화를 시키기 위한 방법입니다. 동기화의 필요성을 이해하려면 멀티 프로세스 또는 멀티 스레드 방식에서 동기화가 없을 때 어떤일이 일어나는지 알아야합니다. 두개의 프로세스 A, B가 있는 경우를 생각해봅시다. 프로세스 A, 프로세스 B는 int a=100이라는 자원을 공유합니다. 사용자는 두 프로세스에서 a를 1씩 증가시키는 작업을 시켰고 사용자는 a가 102라는 값이 될 것을 예상하고 있습니다. a=100 1) 프로세스 A는 a의 값을 읽어온다. a=100 2) 프로세스 B는 a의 값을 읽어온다. a=100 3) 프로세스 A는 a의 값을 증가시킨다. a=101 4) 프로세스 B는 a의 값을 증가시킨다. .. 리눅스 커널 커널이란? 메모리에 상주하는 운영체제의 일부분을 커널이라 한다. 하여 좁은 의미의 운영체제라고도 한다. 즉 커널은 메모리에 상주하는 부분으로써 운영체제의 핵심적인 부분을 뜻한다. 이에 반에 넓은 의미의 운영체제는 커널뿐 아니라 각종 시스템을 위한 유틸리티들을 광범위하게 포함하는 개념이다. 유저 인터페이스(UI)가 OS의 가장 바깥쪽 부분이라면, 커널(Kernel)은 가장 안쪽에 위치한 부분이다. 커널은 시스템의 다른 모든 부분을 위한 기본적인 기능을 제공하고, 하드웨어를 관리하고, 시스템 자원을 분배한다. 즉 매우 핵심적인 역할을 한다는 것이다. 이런 연유로 커널을 운영체제의 관리자(supervisor) 혹은 핵심(core)이라고 부르기도한다. 커널은 일반적인 유저 응용 프로그램보다 높은 상태를 지니게 .. OS 1주차 과제 보호되어 있는 글입니다. 이전 1 다음