파일하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합속성, 메타데이터- 파일의 이름, 파일을 실행하기 위한 정보파일 속성과 유형속성 이름의미유형운영체제가 인지하는 파일의 종류크기파일의 현재 크기와 허용 가능한 최대 크기보호어떤 사용자가 해당 파일을 읽고, 쓰고, 실행할 수 있는지생성 날짜파일이 생성된 날짜마지막 접근 날짜파일에 마지막으로 접근한 날짜마지막 수정 날짜파일이 마지막으로 수정된 날짜생성자파일을 생성한 사용자소유자파일을 소유한 사용자위치파일의 보조기억장치상의 현재 위치 파일 유형대표적인 확장자실행 파일없는 경우, exe, com, bin목적 파일obj, o소스 코드 파일c, cpp, cc, java, asm, py, js워드 프로세서 파일xml, rtf, doc, docx라이브..
CS notes
스와핑프로세스를 임시로 보조기억장치로 보내고, 해당 빈 공간에 또 다른 프로세스를 적재하여 사용프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 큰 경우에도 실행할 수 있음스왑 영역- 프로세스들이 쫓겨가는 보조기억장치의 일부 영역스왑 아웃- 현재 실행되지 않는 프로세스가 메모리에서 스왑영역으로 옮겨지는 것스왑 인- 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것- 스왑 아웃되기 전의 물리 주소와는 다른 주소에 적재될 수 있음 메모리 할당최초 적합메모리 내의 빈 공간을 순서대로 검색하다가 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방법검색을 최소화할 수 있고, 빠른 할당이 가능함최적 적합운영체제가 빈 공간을 모두 검색해 본 후, 프로세스가 적재될 수 있는 공간..

교착 상태일어나지 않은 사건을 기다리며 진행이 멈춰버리는 현상서로 상대의 자원을 기다리기만 하다가 아무것도 못해버리는 현상자원 할당 그래프프로세스가 어떤 자원을 사용하고 있고, 또 어떤 프로세스가 어떤 자원을 기다리고 있는지 표현하는 간단한 그래프교착 상태가 발생한 상황은 자원 할당 그래프가 원의 형태를 띠고 있음프로세스는 원으로, 자원은 사각형으로 표현사용할 수 있는 자원의 개수는 자원 사각형 내에 점으로 표현프로세스가 어떤 자원을 할당받아 사용 중이라면 자원에서 프로세스를 향해 화살표로 표시프로세스가 어떤 자원을 기다리고 있다면 프로세스에서 자원으로 향해 화살표로 표시교착 상태 발생 조건상호 배제- 해당 자원을 한 번에 하나의 프로세스에만 이용 가능했기 때문임- 한 프로세스가 사용하는 자원을 다른 프..
동기화프로세스들 사이의 수행 시기를 맞추는 것1. 실행 순서 제어: 프로세스를 올바른 순서대로 실행하기2. 상호 배제: 동시에 접근해서는 안되는 자원에 하나의 프로세스만 접근하게 하기 생산자와 소비자 문제생산자, 소비자 프로세스를 제대로 동기화 하지 않을 경우-> 이상한 값이 계산 될 수 있음동시에 접근하면 안되기 때문임공유 자원과 임계구역공유 자원- 공동으로 이용하는 변수, 파일, 장치 등의 자원임계 구역- 동시에 실행하면 문제가 발생하는 자원레이스 컨디션- 여러 프로세스가 동시 다발적으로 임계 구역의 코드를 실행하여 문제가 발생 지켜져야 하는 3가지 원칙상호 배제- 한 프로세스가 임계 구역에 들어왔다면 다른 프로세스는 들어올 수 없음진행- 임계 구역에 어떤 프로세스도 진입하지 않았다면 임계 구역에 진..
CPU 스케줄링공정하고 합리적으로 CPU 자원을 배분하는 것 프로세스 우선순위입출력 집중 프로세스- 입출력 작업이 많은 프로세스- 실행 상태보다 입출력을 위한 대기 상태에 더 많이 머무르게됨CPU 집중 프로세스- 복잡한 수학 연산, 컴파일, 그래픽 처리 작업이 많은 프로세스- 대기 상태보다 실행 상태에 더 많이 머무르게됨CPU 버스트, 입출력 버스트- 프로세스는 일반적으로 CPU 버스트와 입출력 버스트를 반복하며 실행우선순위 부여- 프로세스 중요도에 맞게 CPU가 이용할 수 있도록 운영체제가 우선순위를 부여스케줄링 큐프로세스들을 줄을 세워 관리하는 것준비 큐- CPU를 이용하고 싶은 프로세스들이 서는 줄대기 큐- 입출력장치를 이용하기 위해 대기 상태에 접어든 프로세스들이 서는 줄 선점형 & 비선점형 스케..
프로세스를 직접 확인하는 방법 윈도우 = 작업 관리자 - 프로세스 유닉스 - ps 명령어 포그라운드 프로세스: 사용자가 보는 앞에서 실행되는 프로세스 백그라운드 프로세스: 사용자가 보지 못하는 뒤편에서 실행되는 프로세스 - 윈도우 = 서비스 - 유닉스 = 데몬 프로세스 제어 블록 (PCB) 빠르게 번갈아 수행되는 프로세스의 실행 순서를 관리, 프로세스에 CPU를 비롯한 자원을 배분 프로세스와 관련된 정보를 저장하는 자료 구조 프로세스 ID (PID) - 특정 프로세스를 식별하기 위해 부여하는 고유한 번호 - 같은 일을 하는 프로그램이라도 2번 실행한다면 다른 PID가 부여됨 레지스터 값 - 이전까지 사용했던 레지스터의 중간값들을 모두 복원 - PCB 안에는 해당 프로세스가 실행하며 사용했던 프로그램 카운..
장치 컨트롤러 장치 컨트롤러를 다루기 까다로운 이유 입출력장치에는 종류가 매우 많음 - 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기 어려움 입출력장치의 데이터 전송률은 낮은 편 - 전송률: 얼마나 빨리 데이터를 교환할 수 있는지 나타내는 지표 - CPU와 입출력장치 사이의 전송률이 다르다면 문제가 생김 - 때문에 장치 컨트롤러라는 하드웨어를 통해 연결 장치 컨트롤러의 역할 CPU와 입출력장치 간의 통신 중개 오류 검출 데이터 버퍼링 - 버퍼링: 전송률이 차이 나는 장치 사이의 데이터를 버퍼라는 임시 저장공간에 저장하여 전송률을 비슷하게 맞추는 방법 (=데이터를 한 번에 받아와서 조금씩 내보내는 방법) 장치 컨트롤러의 내부 구조 데이터 레지스터 - CPU와 입출력장치 사이에 주고받을 데이터가 담기..
하드 디스크 자기적인 방식으로 데이터를 저장하는 보조기억장치 자기 디스크의 일종 플래터 - 하드 디스크에서 실질적으로 데이터가 저장되는 곳 - 자기 물질로 덮여있는 동그란 철판 - N극, S극이 0과 1의 역할을 수행 - 트랙, 섹터라는 단위로 데이터를 저장 - 하나의 섹터는 일반적으로 512bytes - 실린더 = 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위 스핀들 - 플래터를 회전시키는 구성 요소 - RPM: 스핀들이 플래터를 돌리는 속도 헤드 - 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소 - 다중 헤드 디스크: 트랙마다 헤드가 있어 탐색 시간이 거의 들지 않음 하드 디스크가 저장된 데이터에 접근하는 시간 탐색 시간 - 접근하려는 데이터가 저장된 트랙까지 헤드를 이..
RAM RAM의 특징 휘발성 저장 장치 = 전원을 끄면 저장된 명령어, 데이터가 날아감 때문에 비휘발성 저장 장치의 보조가 필요함 (SSD, HDD 등) RAM의 용량과 성능 용량이 크다면 성능은 어느정도 증가하지만, 필요 이상일때 속도기 비례하여 증가하지는 않음 용량이 크다면 많은 프로그램을 동시에 실행하는데 유리함 RAM의 종류 DRAM (Dynamic RAM) - 저장된 데이터가 동적으로 변하는(사라지는) RAM - 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화해야함 - 소비전력이 낮고, 저렴하고, 집적도가 높아 대용량으로 설계 용이 SRAM (Static RAM) - 저장된 데이터가 시간이 지나도 사라지지 않는 RAM = 재충전이 필요 없음 - DRAM보다 상대적으로 속도가 빠른편 - ..
클럭 컴퓨터 부품들은 클럭 신호의 박자에 맞춰 움직임 클럭 속도 = CPU 속도의 단위 - Hz 단위로 측정 (1초에 몇번) - 클럭 속도가 높은 CPU가 빠르게 동작 오버클럭 - CPU가 고성능을 요구할때 순간적으로 클럭 속도를 높이는 것 - 클럭 속도는 일정하지 않으며, 더 빠르거나 느릴 수 있음 코어와 멀티코어 코어 = 명령어를 실행하는 부품 CPU안에 여러개 존재 → 멀티코어 멀티코어 프로세스 = 여러개의 코어를 포함하고 있는 CPU 멀티스레드 프로세스 = 여러개의 명령어를 동시에 실행할 수 있는 CPU 코어마다 처리할 명령어들을 얼마나 적절하게 분배하느냐에 따라 연산 속도가 크게 달라짐 스레드와 멀티스레드 하드웨어적 스레드 - 하나의 코어가 동시에 처리하는 명령어 단위 - 여러개의 스레드가 있을..