Jost Do It.

그냥 IT해.

반응형

컴공 10

[컴퓨터 구조] 혼자 공부하는 컴퓨터구조 + 운영체제 Chapter 13 교착 상태

Chapter 13. 교착 상태 요약 교착 상태의 정의와 발생 원인을 학습하고, 이를 해결하는 방법에 대해 알 수 있었다. 내용 정리 13-1. 교착 상태란 교착 상태(deadlock) 두 개 이상 프로세스가 각자 자원을 점유하고, 서로의 자원을 요구할 때에 더 이상 프로세스 진행이 불가해진다. 즉, 서로의 종료만을 기다리며 진행이 멈춰버릴 때 교착 상태가 발생한다. 식사하는 철학자 문제(dining philosophers problem) 교착상태를 잘 설명하는 예시 철학자는 프로세스 또는 쓰레드, 포크는 자원, 생각하는 행위는 자원을 기다리는 것으로 이해할 수 있다. 포크는 한 번에 한 스레드에만 접근할 수 있으니 임계 구역으로 생각할 수 있다. 식사하는 철학자 문제 과정 모든 철학자는 원형 테이블에 ..

[컴퓨터 구조] 혼자 공부하는 컴퓨터구조 + 운영체제 Chapter 12 프로세스 동기화

Chapter 12. 프로세스 동기화 요약 프로세스 동기화의 의미와 다양한 기법들에 대해 알 수 있었다. 내용 정리 12-1. 동기화란 동기화의 의미 프로세스 동기화(synchronization) 프로세스 사이 수행 시기를 설정하는 것 동시다발적으로 실행되는 프로세스들은 독립적이거나, 서로 정보를 주고받고 협력할 수 있다. 서로 영향을 주는 프로세스들은 실행 순서와 자원 사용의 일관성을 보장해야 하기에 동기화 돼야 한다. 참고> 프로세스 뿐 아니라 스레드도 동기화의 대상이다. 즉, 실행의 흐름을 갖는 모든 것은 동기화 대상이다. 프로세스 동기화 시 요구조건 실행 순서 제어: 프로세스를 올바른 순서로 실행 상호 배제: 동시에 접근하면 안되는 자원에 하나의 자원만 접근할 수 있도록 하기 1. 실행 순서 제어..

[컴퓨터 구조] 혼자 공부하는 컴퓨터구조 + 운영체제 Chapter 11 CPU 스케줄링

Chapter 11. CPU 스케줄링 요약 CPU 스케줄링의 개념과 방법들에 대해 공부할 수 있었다. 내용 정리 11-1. CPU 스케줄링 개요 CPU 스케줄링 CPU 스케줄링 (CPU scheduling) 운영체제가 프로세스들에게 정해진 규칙으로 CPU 자원을 배분하는 것 CPU 스케줄링에 따라 컴퓨터 성능에 큰 영향을 미침 반드시 실행되야 할 프로그램이 적절히 실행되야 함 급한 프로세스는 우선 실행되고, 급하지 않은 프로세스들은 차선으로 실행할 수 있어야 함 프로세스에 CPU 자원 배분이 질서적으로 가능해야 함 프로세스 우선순위 프로세스 프로세스는 일의 중요도에 따라 우선순위가 존재한다. 우선순위가 높은 프로세스: 우선순위가 낮은 프로세스들 보다 빨리 처리 되야 하는 프로세스 프로세스는 실행 상태와 ..

[컴퓨터 구조] 혼자 공부하는 컴퓨터구조 + 운영체제 Chapter 10 프로세스와 스레드

Chapter 10. 프로세스와 스레드 요약 운영체제가 프로세스를 관리하는 방식을 알 수 있었고, 프로세스와 스레드의 차이에 대해 배울 수 있었다. 내용 정리 10-1. 프로세스 개요 프로세스(process) 보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행할 때의 프로그램 프로세스를 생성한다 고 표현함 프로세스 확인하기 윈도우: 작업 관리자 -> 프로세스 탭 유닉스 체계: ps 명령어 프로세스 유형 포그라운드 프로세스(foreground process): 사용자가 보는 앞에서 실행되는 프로세스 백그라운드 프로세스(background process): 사용자가 보지 못하는 뒤편에서 실행되는 프로세스 사용자와 상호작용하는 백그라운드 프로세스와 그렇지 않은 프로세스가 있다. 데몬(demon): 유닉스 ..

[컴퓨터 구조] 혼자 공부하는 컴퓨터구조 + 운영체제 Chapter 9 운영체제 시작하기

Chapter 9. 운영체제 시작하기 요약 운영체제의 개요와 운영체제가 하드웨어의 시스템을 어떻게 통제하는지 이해할 수 있었다. 내용 정리 09-1. 운영체제를 알아야 하는 이유 운영체제란 운영체제(Operating system) 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램 시스템 자원: 프로그램 실행에 필요한 요소들로 줄여서 자원이라고도 부름 근본 프로그램이기 때문에 컴퓨터가 부팅될 때 메모리의 커널 영역 내에 따로 적재돼 실행된다. 커널 영역(kernel space): 운영체제가 메모리에 적재되는 공간 사용자 영역(user space): 커널 영역을 제외한 영역으로 사용자가 이용하는 응용 프로그램이 적재되는 공간 응용 프로그램(application softw..

[컴퓨터 구조] 혼자 공부하는 컴퓨터구조 + 운영체제 Chapter 8 입출력장치

Chapter 8. 입출력장치 요약 입출력장치가 컴퓨터와 소통하는 방법을 알 수 있었다. 내용 정리 08-1. 장치 컨트롤러와 장치 드라이버 입출력장치가 다루기 까다로운 이유 1. 입출력 장치의 종류가 너무 많다. 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기 어렵다. 장치마다 속도, 데이터 전송 형식 등이 모두 달라지게 된다. 2. 입출력장치의 데이터 전송률이 CPU, 메모리에 비해 낮다. 전송률(transfer rate): 데이터를 얼마나 빨리 교환할 수 있는지 나타내는 지표 전송률의 차이는 CPU와 메모리, 입출력장치간 통신이 어렵게된다. 장치 컨트롤러를 통해 위 한계를 극복한다. 장치 컨트롤러(device controller) 입출력장치는 컴퓨터와 직접적으로 연결하지 않고, 장치 컨트롤러라..

프로그래머가 알아야 할 알고리즘 40 Chapter 6 비지도 학습 알고리즘

Chapter 06. 비지도 학습 알고리즘 요약 비지도 학습의 여러 알고리즘들을 학습하고 어떻게 활용되는지 알 수 있었다. 내용 정리 6-1. 비지도 학습 이해하기 비지도 학습 (Unsupervised learning) 데이터에 내재된 패턴을 발견하고 이를 구조화하는 프로세스 데이터가 무작위로 생성된 것이 아닌 이상, 다차원의 공간에서 데이터 요소 간에는 어떤 패턴이 존재한다. 비지도 학습은 숨겨진 패턴을 찾아내 데이터셋에 구조를 부여하는 과정이다. 지도 학습과 비지도 학습을 결합해 새로운 알고리즘을 개발하려는 연구자들이 늘고 있다 (semi-supervised learning). 비지도 학습의 장점 정답이 주어져 있지 않기 때문에 분석이 훨씬 유연해 가정(assumption)에 덜 의존적임 어떤 차원의..

Study/알고리즘 2022.11.23

프로그래머가 알아야 할 알고리즘 40 Chapter 5 그래프 알고리즘

5장. 그래프 알고리즘 요약 그래프의 종류들과 그래프를 사용한 알고리즘 방법론들을 알 수 있었다. 내용 정리 그래프 알고리즘(graph algorithm) 복잡하고 상호연결성이 높은 자료 구조에서 원하는 정보를 가장 빠르게 찾을 수 있는 방법 전통적으로 검색 분야에서 크게 쓰이고 있음 최근 빅데이터, 소셜미디어, 분산형 데이터 분석에도 사용되고 있음 5.1 그래프 표현 이해하기 그래프(Graph) 버텍스(vertex)와 엣지(edge)로 구성된 자료 구조 버텍스(vertex): 네트워크를 구성하는 개체로 하나의 노드로 볼 수 있다. 모든 버텍스는 버텍스 집합에 속한다 (v ∈ V). 엣지(edge): 두 버텍스가 관계가 있을 때, 이를 이어서 엣지로 표현함 모든 엣지는 엣지 집합에 속한다 (e ∈ E)...

Study/알고리즘 2022.11.16

[컴퓨터 구조] 혼자 공부하는 컴퓨터구조 + 운영체제 Chapter 6 메모리와 캐시 메모리

Chapter 6. 메모리와 캐시 메모리 요약 RAM의 종류에 따른 특징을 알 수 있었고, CPU가 메모리의 프로그램을 어떻게 읽어들이는지 이해할 수 있었다. 내용 정리 06-1. RAM의 특징과 종류 RAM과 보조기억장치 RAM은 휘발성 저장 장치이다. 휘발성 저장 장치(volatile memory): 전원을 끄면 저장된 내용이 사라지는 저장 장치 하드디스크나 SSD 등 보조기억장치는 비휘발성 저장 장치이다. 비휘발성 저장 장치(non-volatile memory): 전원이 꺼져도 저장된 내용이 유지되는 저장 장치 한편 CPU는 보조기억장치에 직접 접근하지 못한다. 따라서 보조기억장치에는 "보관할 대상"을 저장하고, RAM에는 "실행할 대상"을 저장한다. RAM의 용량 RAM 용량이 작으면 보조기억장치..

[컴퓨터 구조] 혼자 공부하는 컴퓨터구조 + 운영체제 Chapter 5 CPU 성능 향상 기법

Chapter 5. CPU 성능 향상 기법 요약 CPU 성능 향상을 위해서 명령어를 병렬적으로 처리하는 파이프라이닝 기법에 대해 알 수 있었다. CPU 명령어 집합의 종류와 특징에 대해 알 수 있었고, 병렬화에 효율적인 명령어와 그렇지 못한 명령어의 차이에 대해 알 수 있었다. 내용 정리 05-1. 빠른 CPU를 위한 설계 기법 클럭 컴퓨터 부품들은 "클럭 신호" 주기에 맞춰서 명령어들이 실행되며 동작한다. 클럭 속도가 높을수록 CPU의 명령어 사이클은 더 빠르게 반복된다. 따라서 클럭 속도가 높은 CPU가 성능이 일반적으로 좋으며, CPU의 속도 단위로 간주된다. 클럭 속도 헤르츠(Hz) 단위로 측정되며 1초에 클럭이 몇번 반복되는지를 나타냄 1Hz는 1초에 클럭이 1번 반복된 것을 의미함 클럭속도는 ..

반응형