[🧑🏻💻혼자 공부하는 컴퓨터 구조+운영체제] 14~15장(가상 메모리, 파일 시스템)
2023. 4. 16. 00:59
개발자: 지식 정리/CS 지식: 컴퓨터 구조와 운영체제
가상 메모리 이전 글에서도 정리한 내용이 있어 최대한 핵심만 정리했다. 연속 메모리 할당 프로세스에 연속적인 메모리를 할당하는 방식을 연속 메모리 할당 방식이라고 한다. 스와핑 스와핑은 메모리에서 사용되지 않는 일부 프로세스를 보조기억장치로 내보내고 실행할 프로세스를 메모리로 들여보내는 메모리 관리 기법이다. 이 때 프로세스들이 쫓겨나는 보조기억장치의 일부 영역을 스왑 영역이라고 한다. 유닉스/리눅스/macOS에서는 free, top 명령어 등을 통해 스왑 영역의 크기를 확인할 수 있다. 페이징을 통한 가상 메모리 관리 가상 메모리는 실행하고자 하는 프로그램을 일부만 메모리에 적재하여 실제 물리 메모리 크기보다 더 큰 프로세스를 실행할 수 있게 하는 기술이다. 이를 가능케 하는 가상 메모리 관리 기법에는..
[🧑🏻💻혼자 공부하는 컴퓨터 구조+운영체제] 11~13장(CPU스케줄링, 동기화, 교착상태)
2023. 4. 9. 21:03
개발자: 지식 정리/CS 지식: 컴퓨터 구조와 운영체제
이번 정리는 간략하게 요약했다. CPU 스케줄링 CPU 스케줄링 개요 CPU 스케줄링: 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것. 운영체제는 프로세스에 스케줄링 우선순위를 매기고, 이는 PCB에 명시된다. 운영체제는 효율적인 스케줄링을 위해 스케줄링 큐 를 사용한다. 준비 큐는 CPU할당을 기다리는 프로세스를 위한 큐이다. 대기 큐는 입출력 장치의 작업이 완료되기 기다리는 프로세스를 위한 큐이다. 선점형 스케줄링는 프로세스가 이용 중인 자원을 뺏을 수 있고, 비선점형 스케줄링에서는 그러지 못한다. 요즘 OS는 선점형 스케줄링 방식을 차용하고 있다. CPU 스케줄링 알고리즘 정보처리기사 단골 소재 FCFS 스케줄링 (First Come First Served): 선입선출 최단..
[🧑🏻💻혼자 공부하는 컴퓨터 구조+운영체제] 10장(⭐️프로세스와 스레드⭐️) 요약 정리
2023. 4. 9. 17:56
개발자: 지식 정리/CS 지식: 컴퓨터 구조와 운영체제
프로세스 개요 프로세스: 실행 중인 프로세스 프로그램은 실행되기 전까지는 그저 보조기억장치에 있는 데이터 덩어리일 뿐….. 보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간 그 프로그램은 프로세스가 된다. 프로세스 직접 확인하기 윈도우에서는 작업 관리자의 [프로세스 탭]에서 확인 가능. 유닉스 체계에서 운영체제에ㄴ서는 ps 명령어로 확인이 가능하다. 확인해보면 내가 실행한 프로세스 외에도 여러 프로세스가 실행되고 있음을 볼 수 있다. 내가 실행한 프로세스는 포그라운드 프로세스, 나도 모르게 뒤에서 실행되고 있는 프로세스는 백그라운드 프로세스라고 한다. 백그라운드 프로세스를 유닉스 체계의 운영체제에서는 데몬, 윈도우에서는 서비스이라고 부르기도 한다. 프로세스 제어 블록 모든 프로세스는 실행을..
[🧑🏻💻혼자 공부하는 컴퓨터 구조+운영체제] 9장(운영체제란?) 요약 정리
2023. 3. 30. 01:06
개발자: 지식 정리/CS 지식: 컴퓨터 구조와 운영체제
운영체제 시작하기 운영체제를 알아야 하는 이유 운영체제란 모든 프로그램은 하드웨어를 필요로 한다. ex1. 1+3 을 계산하는 프로그램은 CPU가 필요하다. ex2. 이미지를 하드 디스크에 저장하는 프로그램은 하드 디스크를 필요로 한다. 프로그램 실행에 마땅히 필요한 요소를 가리켜, 시스템 자원 혹은 자원 이라고 한다. 컴퓨터 구성부품(CPU, 메모리, 보조기억장치, 입출력장치 등)은 모두 자원이다. 당연하게도, 모든 프로그램은 실행되기 위해 자원이 필요하다. 실행할 프로그램이 필요로 하는 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램이 바로 운영체제이다. 말했듯, 운영체제도 인터넷 브라우저, 게임과 같은 프로그램이다. 따라서 실행되기 위해선 똑같이 메모리에 적재되어야 한다. 다만..
[🧑🏻💻혼자 공부하는 컴퓨터 구조+운영체제] 6~8장(메모리, 보조기억장치, 입출력장치) 요약 정리
2023. 1. 24. 12:03
개발자: 지식 정리/CS 지식: 컴퓨터 구조와 운영체제
메모리와 캐시 메모리 RAM의 특징과 종류 RAM의 특징 RAM은 전원을 끄면 저장된 내용이 모두 사라지는 휘발설 저장 장치. '실행할 대상'을 저장. 보조기억장치는 전원이 꺼져도 저장된 내용이 유지되는 비휘발성 저장 장치. '보관할 대상'을 저장. RAM의 용량과 성능 RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리하다. 다만 많은 프로그램을 동시에 실행할 일이 없다면, 성능에는 큰 차이가 없을 것이다. RAM 의 종류 DRAM은 시간이 지나면 저장된 데이터가 점차 사라지는 RAM이고, SRAM은 시간이 지나도 저장된 데이터가 사라지지 않은 RAM이다. SRAM은 빠르다는 장점도 있지만, 집적도가 낮고 소비전력도 크며 가격도 더 비싸다. DRAM은 소비전력이 비교적 낮고, 저렴하고..
[🧑🏻💻혼자 공부하는 컴퓨터 구조+운영체제] 4~5장(CPU 작동 원리) 요약 정리
2023. 1. 24. 06:01
개발자: 지식 정리/CS 지식: 컴퓨터 구조와 운영체제
CPU의 작동 원리 CPU는 메모리에 저장된 명령어를 읽어들이고 해석하고 실행하는 장치이다. CPU 내부에는 계산을 담당하는 ALU, 명령어를 읽어들이거 해석하는 제어장치, 작은 임시 저장 장치인 레지스터가 있다. 이번 챕터의 내용은 책에서 정리한 핵심 포인트 위주로 간단하게 정리했다. ALU와 제어장치 ALU는 레지스터로부터 피연산자를 받아들이고, 제어장치로부터 제어 신호를 받아들인다. ALU는 연산 결과와 플래그를 내보낸다. 연산 결과에 대한 추가적인 상태 정보를 플래그라고 한다. 제어장치(Control Unit) 는 클럭, 현재 수행할 명령어, 플래그, 제어 신호를 받아들인다.클럭의 주기에 맞춰 한 레지스터에서 다른 레지스터로 이동되거나 ALU에서 연산이 수행되거나, CPU에서 메모리에 저장된 명령..
[🧑🏻💻혼자 공부하는 컴퓨터 구조+운영체제] 1~3장(컴퓨터 구조, 데이터, 명령어) 요약 정리
2023. 1. 23. 22:20
개발자: 지식 정리/CS 지식: 컴퓨터 구조와 운영체제
컴퓨터 구조 시작하기 컴퓨터 구조를 알아야 하는 이유 컴퓨터 구조는 실력 있는 개발자가 되려면 반드시 알아야 할 기본 지식입니다. 내가 이 책을 관심있게 바라보고 읽기 시작한 것은 이 생각에서 비롯되었다. 작년부터 개발자 업무를 시작하며 컴퓨터에 대해 잘 알아야하는 이유를 몸으로 조금씩 느끼고 있었다. 다만 면접을 통과하기 위해 벼락치기로 외운 지식만으로도 충분하지 않을까란 핑계를 대며, 다시 복습할 엄두를 못내고 있었다. 해당 내용 공부는 정말 학교 공부하는 느낌이 들기 떄문이다. 하지만 이 책은 정말 읽기 쉽게 쓰여져 있고, 첫 장부터 왜 개발자라면 컴퓨터 구조를 알아야 하는지 그 근거가 분명하게 쓰여져 있어 너무 좋다. 문제 해결 컴퓨터 구조 구성 요소와 작동 원리를 몰라도, 프로그래밍 언어의 문법..
프로세스와 스레드
2021. 11. 10. 11:31
개발자: 지식 정리/CS 지식: 컴퓨터 구조와 운영체제
프로그램 파일 시스템에 존재하는 실행 파일 프로세스 메모리에 적재되어서 실행되고 있는 프로그램. 실행되고 있는 프로그램의 인스턴스. (운영체제가 관리하는 작업의 단위.) 운영체제로부터 시스템 자원을 할당받는다. → Cpu 시간, 운용되기 위한 필요한 주소 공간, Code, Data, Stack, Heap의 구조로 되어있는 독립된 메모리 영역. 프로세스 간에는 메모리 등의 자원을 공유하지 않는다(쓰레드와 가장 큰 차이점) 한 프로세스는 다른 프로세스의 메모리 공간(변수나 자료구조)에 접근할 수 없으며, 접근을 위해선 IPC통신이 필요하다. ex) 파이프, 파일, 공유메모리, 소켓 등을 이용한 통신방법 IPC (Inter Process communication) : 독립된 프로세스끼리 통신을 하기 위한 방법..