운영체제의 역할 운영체제(Operating System, OS) 자원 관리를 하는 소프트웨어 (resource manager) 자원 (resource) 하드웨어: 프로세서, 메모리, 입출력장치, 통신장치 소프트웨어 효율적이고 공평한 자원 사용
메인보드버스프로세서클럭메모리 계층구조보조기억장치DMA주변장치노스 브리지 (Northbridge)CPU와 메모리, 고속 그래픽 카드, Southbridge 등과의 통신 제어사우스 브리지 (Southbridge)저속 장치에 대한 연결지원버스장치 간의 신호 전송을 하는 연결
프로세스 실행중인 프로그램 자신의 주소공간 보유 코드 영역 프로세서가 실행하는 프로그램 코드 저장 데이터 영역 전역 변수 저장 힙 영역 동적 메모리 할당 영역, malloc() 스택 영역 임시 데이터(함수 매개
쓰레드 (thread) 프로세스 내에서 실행되는 흐름의 단위 OS 스케줄러에 의해 관리될 수 있는 가장 작은 단위의 프로그램 조각 주 프로그램과는 독립적으로 실행되는 함수 프로세스 내의 다른 쓰레드와 주소공간과 전역변수 등의 데이터는 공유 레지스터, 스택, 시그널 마스
병행 실행동시에 존재하는 쓰레드의 실행비동기적 실행독립적으로 실행되거나 협력하여 실행때때로 서로 통신을 하거나 동기화가 필요 \- 이러한 상호작용은 복잡경쟁 조건복수 개의 프로세스나 쓰레드가 동일한 데이터를 동시에 접근하는 경우, 접근 순서에 따라 실행결과가 달라질 수
프로세스나 쓰레드가 아무리 기다려도 일어날 수 없는 사건을 대기하고 있는 상태자원 경쟁 교착 상태독점 자원에 대한 경쟁에서 교착상태 발생환경 대기가 있을 때 발생자원요구 교착상태어느 프로세스도 보유 자원을 포기하려고 하지 않은 상황의 환형대기자원할당 그래프에 의한 표현
CPU를 언제, 어느 프로세스에 할당할지 결정하는 작업방법별 분류선점 스케줄링비선점 스케줄링공정한 스케줄링처리량 최대화 \- 단위 시간당 처리되는 프로세스의 개수응답시간 최소화 \- 실행 요청 후 첫 번째 반응이 나올 때까지의 시간소요시간 예측 가능 \- 실행 요
가상 메모리 적재 전략 적재(fetch) 전략 페이지나 세그먼트를 보조기억장치에서 메모리로 이동시키는 시점 결정 예측 적재 전략 프로세스가 조만간 참조할 것 같은 페이지를 예측하여 적재 휴리스틱 사용 요구 적재 전략 프로세스에서 명시적으로 참조하는 페이지를
대량의 저장공간 제공블록 단위의 접근저속 접근순차적 저장장치자기 테이프무작위 접근 저장장치자기 디스크플래시 메모리보조기억장치 관리 필요성전체 시스템 성능의 병목에 해당보조기억장치 성능 향상이 전체 성능에 크게 기여 가능소프트웨어적 성능향상과 하드웨어적 성능향상직접 연결
파일하나의 단위로 처리될 수 있는 이름이 부여된 데이터 집합파일 연산열기닫기생성 삭제복사이름변경내용보기파일 내의 데이터 항목읽기쓰기갱신삽입삭제파일의 종류연속된 바이트로 구성된 파일레코드로 구성된 파일트리 정보를 저장하는 파일디렉토리파일 시스템에 있는 파일에 대한 정보를
보호(protection)컴퓨터 시스템의 자원에 대해서 프로그램, 프로세스, 사용자 등의 접근을 제어하는 것내부 정보 유출 방지(내부적 위협)접근 제어 기법 적용보안(Security)시스템의 자원인 정보, 데이터 등을 불법적인 노출, 변조, 파괴 등으로부터 보호하고,
리눅스 컨테이너동일한 운영체제 상에서 독립단일 운영체제 상에서 프로세스 격리가상머신독립된 운영체제를 통해 독립된 환경 구성하이퍼바이저호스트 컴퓨터에서 여러 운영체제를 동시에 실행하기 위한 논리적 플랫폼게스트 운영체제에 가상 운영 플랫폼을 제공하여서 게스트 운영체제 관리