목록분류 전체보기 (237)
Machineboy空
운영체제 이해하기 위한 개념들 *(시스템 ) 자원(Resource) 프로그램 실행에 있어서 마땅히 필요한 요소들. 컴퓨터의 네 가지 핵심 부품 포함! 모든 프로그램은 실행을 위해 자원을 필요로 한다. *운영체제(OS, operating system) 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램 *커널 영역(kernel space) 운영체제 또한 프로그램 따라서 실행되기 위해서는 메모리에 저장되어 있어야 한다. but 실행 프로그램들이 메모리에 적재되는 영역, 운영체제가 메모리에 적재되는 영역은 다르다! 운영체제가 적재되는 곳이 커널 영역 운영체제의 역할 1. 응용 프로그램 (워드 프로세서, 인터넷 브라우저 등)의 주소는 누가 지정해줄까? → 운영체제 새로운..
*프로그램 입출력 방법 장치 컨트롤러의 레지스터를 CPU가 읽고 씀으로서 입출력 작업이 이루어진다. *인터럽트 기반 입출력
세 가지 입출력 방식 프로그램 입출력 인터럽트 기반 입출력 DMA 입출력 1) 프로그램 입출력 프로그램 속 명령어로 입출력장치(입출력장치에 연결된 장치 컨트롤러)를 제어하는 방법 입출력 명령어로써 장치 컨트롤러와 상호작용 ex. 메모리에 저장된 정보를 하드 디스크에 백업 (= 하드 디스크에 새로운 정보를 쓰기) CPU가 장치컨트롤러의 레지스터 값을 읽고 씀으로써 이루어진다. → 근데 입출력장치의 종류가 너무나도 다양해서 방법을 규격화하기 어렵다고 했는데, 어떻게 장치컨트롤러의 레지스터를 다 알 수 있지? CPU가 장치컨트롤러의 레지스터값을 알기 위한 방법 2가지 메모리 맵 입출력 (Memory Mapped I/O) 고립형 입출력(Isolated I/O) 메모리 접근 명령어 == 입출력장치 접근 명령어 ..
입출력장치 - CPU의 정보 주고 받기 입출력장치는 앞서 학습한 CPU, 메모리보다 다루기가 더 까다롭다. 입출력장치 종류가 너무 많아서 컴퓨터 내부와 정보를 주고 받는 방식을 규격화 하기 힘들다. CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다. 물론 CPU나 메모리 등 보다 훨씬 빠른 속도의 입출력장치도 있다. 장치 컨트롤러 이런 이유로 입출력장치는 장치 컨트롤러를 통해 컴퓨터와 연결된다 장치 컨트롤러의 역할 CPU와 입출력장치 간의 통신 중개 일종의 번역가 역할 입출력장치와 CPU의 정보 주고 받는 형식이 규격화하기 어렵다는 단점을 극복. 오류 검출 입출력장치에 어떤 문제가 있진 않은지 데이터 버퍼링 *버퍼링(buffering): 전송률이 높은 장치와 낮은 장치 사이에 주..
Main메소드 프로그램의 진입점 (Entry Point) *진입점 (Entry Point): 프로그램이 시작되는 첫 번째 코드 프로그램이 실행되면 CLR(Common Language Runtime)은 프로그램을 메모리에 올린 후 프로그램의 진입점을 찾는데, Main()메소드가 없다면 진입점을 찾지 못하고 에러가 난다. 프로그램을 시작하면 실행되고 이 메소드가 종료되면 프로그램도 종료 모든 프로그램은 반드시 Main이라는 이름을 가진 메소드를 하나 가지고 있어야 한다. 각 언어별 엔트리포인트 C#: static void Main(string[] args) {} C++: int main() {}
RAID의 정의 RAID(Redundant Array of Independent Disks) *redundant: 불필요한, 중복의 >> 필요이상으로 준비해두는 것 하드 디스크와 SSD로 사용하는 기술 데이터의 안전성 혹은 높은 성능을 위해 여러 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 활용하는 기술 RAID의 종류 ( RAID 레벨 ) RAID를 구성하는 기술 RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6 그로부터 파생된 RAID 10, RAID 50 RAID 0 RAID 구성 기술 중 0번째. 데이터를 단순히 나눠서 저장하는 구성 방식 *스트라입 (stripe) : 마치 줄무늬처럼 분산되어 저장된 데이터 *스트라이핑 (striping..
대표적 보조기억 장치 : 하드디스크, 플래시 메모리 (ssd, usb,sd카드 등) 하드디스크 (Hard disk) 자기적인 방식(N극과 S극)으로 데이터를 저장. 하드디스크 저장 단위 플래터에 저장이 되며 섹터와 트랙 단위로 데이터가 저장된다. 기본적으로 플래터는 양면이 모두 사용될 수 있는데 같은 트랙이 위치한 곳을 모아 연결한 곳을 실린더라고 함. 보통 연속된 정보는 한 실린더에 기록된다. 하드디스크 데이터 접근 과정 하드 디스크가 저장된 데이터에 접근하는 시간 탐색 시간 (seek time) : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간 회전 지연 (rotational latency) : 헤드가 있는 곳으로 플래터를 회전시키는 시간 전송 시간 (transfer time) : 하드 ..
전제 조건 1) CPU가 메모리에 접근하는 시간은 CPU 연산 속도보다 느리다. 전제 조건 2) CPU로 부터 먼 저장 장치일 수록 느리고, 속도가 빠른 저장 장치는 저장 용량이 작고 가격이 비싸다 저장 장치 계층 구조 (레지스터 vs 메모리(RAM) vs USB 메모리) CPU에 가까울수록 빠르고 비싸다(16GB 메모리 > 16GB USB) 즉, 낮은 가격대의 대용량 저장 장치를 원한다면 느린 속도는 감수해야 하고, 빠른 속도의 저장 장치를 원한다면 작은 용량과 비싼 가격은 감수해야 한다. 캐시 메모리 (Cashe Memory) CPU와 메모리 사이에 위치한, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM(Static RAM)기반의 장치. CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 ..