분류 전체보기
-
[Data Structure] 링크드리스트Data Structure 2024. 5. 18. 01:27
링크드리스트(linked_list) 자료구조에 대해 정리하였습니다. [ 단일 링크드 리스트 (Singly Linked List) ] 각 노드는 데이터와 다음 노드를 가리키는 하나의 포인터를 포함합니다.마지막 노드의 포인터는 null을 가리키며 리스트의 끝을 나타냅니다.Node1 -> Node2 -> Node3 -> null [ 이중 링크드 리스트 (Doubly Linked List) ] 각 노드는 데이터를 포함하며, 다음 노드를 가리키는 포인터와 이전 노드를 가리키는 포인터를 가지고 있습니다.양방향 탐색이 가능하다는 장점이 있습니다.null Node2 Node3 -> null [ 원형 링크드 리스트 (Circular Linked List) ] 마지막 노드가 첫 번째 노드를 가리키도록 연결되어 있습..
-
[Operating System] 운영체제 : 운영체제의 큰 그림Operating System 2024. 5. 17. 19:52
운영체제의 큰 그림: 커널, 이중모드와 시스템 호출, 운영체제의 서비스 종류에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'운영체제가 제공하는 기능은 다양하지만, 공통적이고 핵심적인 서비스는 존재합니다.(자원에 접근/조작하는 기능, 프로그램이 안전하고 올바르게 실행되게 하는 기능, ...)이러한 운영체제의 핵심 서비스를 담당하는 부분을 커널(kernel)이라고 합니다. 일반 프로그램은 자원에 직접 접근이 불가능합니다. 오직 운영체제를 통해서만 접근하도록 하여 자원을 보호합니다.(운영체제는 자원 접근을 대행하는 일종의 문지기 입니다.)이중모드란 CPU가 명령어를 실행하는 모드을 크게 사용자 모드과 커널 모드로 구분하는 방식입니다. [ 사용자..
-
[Operating System] 운영체제 : 운영체제를 알아야 하는 이유Operating System 2024. 5. 17. 14:50
운영체제를 본격적으로 공부하기에 앞서, 운영체제를 공부해야 하는 이유에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'모든 프로그램은 실행을 위해 자원을 필요로 합니다.자원 : 프로그램 실행에 있어 마땅히 필요한 요소(CPU, 메모리, 입출력장치, 파일, 네트워크 패킷 등도 포함)운영체제는- 실행할 프로그램에 필요한 자원을 할당하고- 프로그램이 올바르게 실행되도록 돕는특별한 프로그램입니다. : 운영체제는 커널 영역에 적재됩니다. +. 응용 프로그램(application software)?: 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램(ex. 메모장, 웹브라우저, etc.) [ 운영체제의 메모리 관리 ] [ 운영체제의 CPU 관리..
-
[Computer Science] 입출력 장치 : 다양한 입출력방법Computer Science 2024. 5. 17. 11:31
입출력 장치의 세 가지 입출력 방식: 프로그램 입출력, 인터럽트 기반 입출력, DMA 입출력에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'프로그램 명령어를 이용해 입출력장치 속 장치 컨트롤러의 레지스터 값을 읽고 씀으로써 제어하는 방법입니다. Ex : 메모리에 저장된 정보를 하드 디스크에 백업하는 과정1. CPU가 하드 디스크 컨트롤러의 제어 레지스터에 쓰기 명령 내보내기 2. 하드 디스크 컨트롤러는 하드 디스크 상태 확인 -> 상태 레지스터에 준비 완료 표시 3-1. CPU는 상태 레지스터를 주기적으로 읽어보여 하드 디스크의 준비 여부를 확인3-2. 하드 디스크가 준비되었다면 백업할 메모리의 저오를 데이터 레지스터에 쓰기 CPU가 장치 컨..
-
[Computer Science] 입출력 장치 : 장치 컨트롤러와 장치 드라이버Computer Science 2024. 5. 17. 10:04
입출력 장치를 컨트롤하는 장치 컨트롤러와 장치 드라이버에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'입출력 장치는 CPU나 메모리보다 다루기가 까다롭습니다.이를 해결하기 위해 장치 컨트롤러와 장치 드라이버를 사용합니다. [ 첫째, 입출력장치에는 종류가 너무나도 많습니다 ]: 장치가 다양하면 장치마다 속도, 데이터 전송 형식 등도 다양하기 때문에 정보를 주고받는 방식을 규격화하기 어렵습니다. [ 둘째, CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다 ] 보조기억장치와 입출력장치는 딱 잘라서 구분되지는 않습니다. 보조기억장치는 메모리를 보조하는 입출력장치의 한 종류로 볼 수 있습니다. 입출력장치는 장치 컨..
-
[Data Structure] 큐(Queue) & 스택(Stack)Data Structure 2024. 5. 16. 23:59
큐(Queue)와 스택(Stack)자료구조에 대해 정리하였습니다.기본적인 자료구조 중 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out) 구조로 저장하는 형식을 말합니다. 일반 큐 (Linear Queue), 원형 큐 (Circular Queue), 우선순위 큐 (Priority Queue), 블로킹 큐 (Blocking Queue), 동기화 큐 (Synchronized Queue) 등 다양한 큐의 종류가 있습니다. Ex)- 프린터 대기열- 프로세스 관리- 운영 체제의 작업 스케줄링 class Queue { constructor() { this.items = []; } // 큐에 요소 추가 enqueue(element) { this.items..
-
[Computer Science] 보조기억장치 : RAID의 정의와 종류Computer Science 2024. 5. 16. 14:19
보조기억장치의 RAID개념에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'데이터의 안정성 혹은 높은 성능을 위해 여러 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기수입니다. >RAID를 구성하는 기술을 RAID 레벨 이라고 합니다.(RAID 0, RAID 1, RAID 2, ETC.) 스트라잎(stripe) : 마치 줄무늬처럼 분산되어 저장된 데이터스트라이핑(striping) : 분산하여 저장하는 것 [ RAID 0 ]: 데이터를 단순히 나누어 저장하는 구성 방식 [ 장점 ] : 입출력 속도의 향상[ 단점 ] : 저장된 정보가 안전하지 않음 [ RAID 1 ]: 미러링(mirroring)을 이용해 복사본을 만드는 방..
-
[Computer Science] 보조기억장치 : 다양한 보조기억장치Computer Science 2024. 5. 16. 13:37
다양한 보조기억장치 중 가장 대표적으로 사용되는하드디스크와 플래시메모리에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'자기적인 방식으로 데이터를 저장하는 보조기억장치 [ 스핀들 ]플래터를 고정하고 회전시키는 축.RPM(Revolution Per Minute) : 분당 회전수[ 플래터 ] 데이터를 저장하는 자성 물질로 이루어진 실제 저장ㅅ 매체. 일반적으로 플래터 양면 모두 사용. 여러 개의 트랙과 섹터로 나뉨. [ 헤드 ] 플래터의 자성 표면에서 데이터를 읽고 쓰는 작은 장치. 플래터의 양면마다 헤드가 있음.[ 모니터 암 ] 드를 플래터 표면의 원하는 위치로 이동시키는 팔. 하드디스크: 저장 단위 >섹터(sector)가 모여 트랙(tra..