목록2024/02 (3)
나의 개발일지
멀티 프로세스 환경에서는 여러 프로세스가 모두 실행되어야 하지만 CPU 자원은 한정적. 그래서 스케줄링을 통해 모든 프로세스를 공평하게 실행해 한정된 자원을 효율적으로 활용하는 것이 OS의 주요 목적이다. OS에서 스케줄링은 빠질 수 없는 개념으로 목적, 단계, 각종 용어를 숙지해야한다. 1.3.1 스케줄링의 목적 스케줄링의 목적은 멀티 프로세스 환경에서 모든 프로세스를 공평하게 실행하는 것이다. 세부적으로는 아래의 5가지 목적이 있다. - 공평성 : 모든 프로세스가 공평하게 실행돼야 한다. 특정 프로세스가 실행되지 않는 경우가 없도록 스케줄링. - 효율성 : 자원을 효율적으로 사용해 자원이 사용되지 않는 시간이 없도록 스케줄링 해야한다. - 안정성 : 우선순위를 고려해 높은 우선순위의 프로세스를 먼저 ..
프로세스 관련 질문이 나왔을 때 프로세스를 이용한 프로그래밍 경험을 답변으로 엮으면 개발 경험을 부각시킬 수 있다. 1.2.1 프로세스와 스레드 프로세스란? 컴퓨터에서 실행 중인 하나의 프로그램을 의미한다. 프로그램은 특정 작업을 수행하기 위한 명령어의 집합이다. OS는 프로그램을 실행하면서 디스크에 저장된 데이터를 메모리로 로드한다. 프로세스는 OS로부터 독립된 메모리 영역(코드, 데이터, 스택, 힙)을 할당받으며, 다른 프로세스의 메모리 영역에 접근할 수 없다. 프로세스에 할당된 메모리 영역은 아래 그림과 같으며, PCB는 프로세스 제어 블록이다. 프로세스의 메모리 영역 구조 - 스택(stack) : 지역변수, 함수의 매개변수(파라미터), 반환되는 주소 값 등이 저장되는 영역이다. 높은 주소 값에서 ..
운영체제란 ? 하드웨어 위에 설치되어 하드웨어 게층과 다른 소프트웨어 계층을 연결하는 소프트웨어 계층이다. 컴퓨터 시스템의 자원을 관리하고, 사용자가 컴퓨터를 사용할 수 있는 환경을 제공하는 역할을 수행한다. CPU, 메모리와 같은 컴퓨터 자원은 제한적이라서 자원을 관리하는 일은 매우 중요하다. 또한, 사용자와 컴퓨터 간 인터페이스를 제공해 사용자가 컴퓨터를 편리하게 사용할 수 있는 환경을 제공한다. 대표적인 OS는 windows, mac os, linux, unix 등이 있다. 운영체제의 목적 OS는 한정된 컴퓨터 자원을 관리하는 시스템이다. 이러한 역할에 기반해 4가지 목적이 있다. - 처리 능력 향상 : OS는 자원 관리를 통해 일정 시간 내에 시스템이 처리하는 일의 양을 향상시킨다. - 반환 시간..