[CS 스터디] 3주차 CPU 스케줄링과 IPC
·
공부/CS 스터디
CPU 스케줄링선점형 VS 비선점형CPU 스케줄러는 선점형(Preemptive)과 비선점형(Non-Preemptive)으로 구분할 수 있다.두 스케줄링은 자원을 빼앗길 수 있느냐 빼앗기지 않느냐에 따라 구분할 수 있다.먼저, 선점형 스케줄링은 자원을 다른 프로세스에 빼앗길 수 있다.실행중이던 프로세스가 자원을 빼앗기면 어떻게 될까?자원이 없으면, 프로세스를 실행할 수 없기 때문에 현재 작업을 저장하게 되고, 이 과정에서 잦은 Context Switching이 발생한다.또한, 선점형 스케줄링은 응답성이 높다는 장점이 있다.만약 더 높은 우선순위를 가진 프로세스가 생성된다면, 선점형 스케줄링은 기존 프로세스의 자원을 회수하고, 새로운 프로세스에게 할당할 수 있다.이렇게 되면, 우선순위가 높은 프로세스는 기다..
[CS 스터디] 2주차 커널 동작과 인터럽트
·
공부/CS 스터디
CS 스터디 2주차 - 커널 동작과 인터럽트커널 모드커널 모드는 말 그대로 커널에서 실행하는 모드로, 다음과 같은 특징을 가진다.모든 하드웨어에 직접 접근 가능모든 CPU 명령어 실행 가능운영체제가 커널 모드로 실행됨유저 모드유저 모드는 userspace에서 동작하는 모드로, 다음과 같은 특징을 가진다.하드웨어에 직접 접근 불가제한된 CPU 명령어 실행 가능일반 애플리케이션이 기본적으로 유저 모드로 실행됨그렇다면, 유저 모드에서 실행중이던 애플리케이션이 네트워크 처리, 파일 입출력 등 하드웨어에 직접 접근하는 등, 유저 모드 권한 밖의 작업을 하려면 어떻게 동작할까?이때 애플리케이션은 시스템 콜 (System Call)을 사용한다.시스템 콜시스템 콜을 애플리케이션이 커널 기능을 요청할 때 사용하는 인터페..
[CS 스터디] 1주차 프로세스와 스레드
·
공부/CS 스터디
CS 스터디 1주차 - 프로세스와 스레드프로세스란프로세스를 간단하게 설명하면, 컴퓨터에서 실행 중인 프로그램 이라고 설명할 수 있다.프로그램을 실행하면 먼저 메모리에 프로그램이 적재되고, CPU가 실행 가능한 상태가 된다.이때 메모리에 올라간 이 프로그램 (혹은 커널에 등록된 프로그램)을 프로세스라고 할 수 있다.프로세스의 구조프로세스는 다음곽 같이 총 4개의 영역으로 구성되어있다.StackHeapDataText아래 표와 같은 순서로 나타낼 수 있으며, 아래로 갈 수록 메모리 주소가 낮아진다.StackHeapDataText그렇다면, 각 구조별 특징에 대해 알아보자Stack임시 데이터 (지역 변수, 함수 호출 등)가 저장되는 영역으로, 가장 높은 메모리 주소를 가진다.함수 호출 시에 생성되며, 함수가 끝나..