컴퓨터는 사실 운영체제가 없어도 동작할 수 있다. 하지만 여러 프로그램을 설치하지 못하고, 특정 목적만을 위해 동작하게 된다.운영체제가 하는 일프로세스 관리메모리 관리하드웨어 관리 - 특정 영역에 사용자가 바로 접근하지 못하도록(실수 예방, 보안)파일 시스템 관리운영체
프로그램이란? 저장장치에 저장된 명령문의 집합체프로세스란? RAM에 올라와서 실행중인 프로그램프로세스의 구조code - 자신을 실행하는 코드data - 전역변수, static 변수heap - 프로그래머가 런타임시 메모리를 동적할당stack - 지역변수, 함수 호출시 필
CPU 스케줄링이란?프로세스들에게 CPU를 할당/해제하는 순서고려 사항어떤 프로세스에게 CPU 사용권을 줘야 하는가?CPU를 할당받은 프로세스가 얼마나 CPU를 사용해야 하는가?CPU burst : CPU를 할당받아 실행하는 것I/O burst : 입출력 작업프로세스
한 컴퓨터 내에서 프로세스 간 통신하고,다른 컴퓨터와 네트워크로 연결되어 프로세스 간 통신도 가능하다.프로세스간 통신 종류한 컴퓨터 내에서파일 - 하나의 파일을 같이 읽고 쓴다파이프 - 운영체제가 생성한 파이프를 통해 데이터를 주고받는다쓰레드 간 통신 - 데이터, 힙
데드락(교착상태)이란?여러 프로세스들이 서로 끝나기만을 기다리며 아무것도 진행되지 못하는 상태발생 이유?공유 자원교착상태의 필요조건한 가지라도 충족하지 않는다면, 교착상태는 발생하지 않는다.상호배제점유된 리소스가 다른 프로세스들과 공유되면 안된다.비선점점유된 리소스를
프로그래밍 언어는 컴파일 언어와 인터프리터 언어로 나뉜다.컴파일 언어개발자가 코드를 작성하고 컴파일을 거쳐 0과 1의 기계어로 된 실행파일 생성컴파일 과정에서 문법 실수 검사CPU에서 바로 실행 가능한 기계어로 실행파일이 만들어져 속도가 빠르다C, C++, C -
레지스터 - 캐시 - 메인메모리 - 보조저장장치레지스터 - CPU 내의 저장장치32bit, 64bit캐시L1, L2 …폰 노이만 구조 - 프로그램을 메모리에 올려 실행주소 - 운영체제가 메모리 관리를 위해 메모리를 1바이트 크기로 구역을 나누고 숫자를 매긴 것32bit
가상메모리는 이론상으로 무한대지만, 실제로는 물리메모리 크기와 CPU의 비트수로 결정된다.32bit인 경우, 표현 가능 주소값은 최대 2의 32승동적주소변환 = 메모리 관리자가 메모리 + 하드디스크 스왑영역을 합쳐서 주소를 다루는 것세그멘테이션과 페이징페이징논리주소공간
주변장치 - 그래픽카드, HDD, SSD, 키보드, 마우스 등캐릭터 디바이스캐릭터 단위의 적은 양의 데이터 전송마우스, 키보드, 사운드카드, 직렬 병렬 포트블록 디바이스블록 단위의 큰 데이터 전송HDD, SSD, 그래픽카드버스 인터페이스를 통해 I/O 버스에 연결되어있
운영체제가 사용자의 요청을 받아 파일을 저장파일 관리자 - 메모리 관리자가 페이지 테이블을 이용해서 가상주소를 물리주소로 변환하듯파일 테이블을 이용해서 파일을 관리 \- 파일과 디렉토리 생성 \- 파일과 디렉토리 수정, 삭제 \- 파일 권한 관리