CS/OS
-
[OS] 컴퓨터 구조CS/OS 2021. 8. 6. 19:00
📝 컴퓨터 구조 💻 하드웨어 ✔ 컴퓨터를 구성하는 기계적 장치 🔧 CPU 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어한다. 산술논리연산장치(ALU) + 제어장치 + 레지스터로 구성된다. 🔧 기억장치 프로그램, 데이터, 연산의 중간 결과를 저장한다. 주기억장치(RAM)과 보조기억장치(HDD, SSD)로 나누어 진다. 보조기억장치는 주기억장치에 비해 속도는 느리지만 자료를 영구적으로 보관할 수 있다. (비휘발성) 🔧 입출력장치 입력 장치는 컴퓨터 내부로 자료를 입력하는 키보드, 마우스 등에 해당된다. 출력 장치는 컴퓨터에서 외부로 표현하는 프린터, 모니터, 스피커 등에 해당된다. 🔧 시스템 버스 각각의 구성요소가 다른 구성요소로 데이터를 보낼 수 있는 통로이다. 데이터 버스: 중앙처..
-
[OS] 캐시 메모리CS/OS 2021. 8. 6. 17:52
📝 캐시 메모리 💻 캐시 메모리 ✔ 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리 🔧 CPU가 주기억장치에서 저장된 데이터를 읽어올 때 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤 다음에 이용할 때 주기억장치가 아닌 캐시 메모리에서 먼저 가져오면서 속도를 향상시킨다. 속도는 빠르지만 비싸다는 단점이 있다. 🔧 작동 원리 시간 지역성: for, while같은 반복문에서 사용하는 조건 변수 처럼 한번 참조된 데이터는 잠시 후 다시 참조될 가능성이 높다. 공간 지역성: 배열과 같은 연속 접근 시 참조된 데이터 근처에 있는 데이터가 잠시 후 다시 참조될 가능성이 높다. 이러한 지역성을 최대한 활용하기 위해 해당 데이터 뿐만 아니라, 자주 사용될 주소의 데이터도 같이 가져..
-
[OS] CPU 작동원리CS/OS 2021. 8. 6. 17:13
📝CPU 작동원리 💻 CPU의 구조 ✔ CPU는 중앙 처리 장치로 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행하고 처리하는 가장 핵심적인 컴퓨터의 제어 장치이다. 🔧 연산 장치 산술 연산과 논리 연산을 수행한다. 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 레지스터로 보낸다. 🔧 제어 장치 명령어를 순서대로 실행할 수 있도록 제어한다. 주기억장치에서 프로그램 명령어를 꺼내 해독하고, 그 결과에 따라 명령어 실행헤 필요한 제어 신호를 기억장치, 연산장치, 입출력장치로 보낸다. 🔧 레지스터 고속 기억장치이다. 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장한다. 🙋♀️ 특수 목적 레지스터에 대해 알아보자! PC: 다음에 실행할 명령어의 주소를 저장한다. MAR: ..
-
[OS]Process VS ThreadCS/OS 2021. 7. 10. 19:15
📝 Process VS Thread ✨ 해당 글은 아래 [10분 테코톡]을 듣고 작성했습니다.✨ 🙋♀️ 프로세스와 쓰레드에 대해 알아보기 전에, 먼저 용어를 정리하고 가자. 실행 단위 - cpu core에서 일어나는 하나의 단위. 프로세스와 스레드를 포괄하는 개념이다. (부연 설명이 없는)프로세스 - 하나의 스레드만 가지고 있는 단일 스레드 동시성 - 짧은 전환으로 여러가지 일을 동시에 처리하는 것처럼 보이는 것 📌 Process에 대한 사전 지식 🔎 프로세스가 실행되기 위해선 필요한 자원이 메모리에 올라가 있어야 한다. - 메모리 영역은 Code영역, Data영역, Heap영역, Stack영역으로 나뉜다. Code: 실행 명령을 포함하는 코드 영역 Data: static, grobal 변수 영역 He..
-
OS - 은행원 알고리즘CS/OS 2021. 2. 20. 19:37
은행원 알고리즘 은행원 알고리즘 이란? 교착상태 회피 알고리즘이다. OS는 안전상태를 유지할 수 있는 요구만을 수락하고 불안정한 상태를 초래할 사용자의 요구는 나중에 수락할 수 있는 상태가 될때까지 계속 거절한다. 동작 과정이 은행에 돈을 빌리러 온 고객들과 돈을 빌려줄 은행의 관계와 유사하다. 안전상태 안전상태: 시스템이 교착상태를 일으키지 않으면서 각 프로세스가 요구한 최대 요구량만큼 필요한 자원을 할당해 줄 수 있는 상태이다. 불안전상태: 교착상태이기 위한 조건중에 하나로 불안전 상태에서만 교착상태가 발생한다. 그러나 불안전 상태라고 해서 무조건 교착상태가 발생하는 것은 아니다. 시스템이 항상 안전상태를 유지할 수 있게 하는 것이 바로 은행원 알고리즘이다. 은행원 알고리즘 필요 요건 Max: 각 고..
-
OS - CPU스케줄링CS/OS 2021. 2. 16. 20:16
CPU 스케줄링 CPU 스케줄링 CPU와 같은 자원을 우선순위에 기반하여 프로세스에 할당하는 방법을 말한다. 이때 사용되는 Queue에는 세 가지가 있다. Job Queue: 현재 시스템 안에서 돌고 있는 프로세스를 의미한다. Ready Queue: 메모리 안에서 CPU의 할당을 기다리는 프로세스를 의미한다. Device Queue: 장치 입출력을 기다리고 있는 프로세스를 의미한다. 스케줄러의 종류 장기 스케줄러(Job 스케줄러) 어떤 프로세스를 메모리에 먼저 적재할 것인지 결정한다. 단기 스케줄러(CPU 스케줄러) CPU 스케줄링. 메모리에 올라온 프로세스들 중에서 어떤 프로세스를 먼저 CPU의 할당을 받게 할지 순서를 결정한다. 중기 스케줄러(Swapper) 자원 고갈 등의 이유로 메모리에 적재된 프..
-
OS - 프로세스와 쓰레드CS/OS 2021. 2. 15. 20:52
프로세스와 쓰레드 프로세스 실행중인 프로그램으로 메모리에 적재되어 CPU자원의 할당을 받을 수 있는 것을 말한다. 쓰레드 프로세스의 작업 실행 단위로 프로세스에 할당된 메모리, 자원을 공유할 수 있다. 쓰레드 간에는 각자 독립적인 작업을 수행하기 때문에 각각의 스택과 레지스터를 가진다. 프로세스의 메모리, 자원등을 공유하므로 커널의 도움 없이 상호 통신이 가능하다. 사용자 수준의 쓰레드: 사용자가 만든 라이브러리를 사용하여 쓰레드를 운용한다. 속도는 빠르지만 구현이 어렵다. 커널 수준의 쓰레드: 운영체제의 커널에 의해 쓰레드를 운용한다. 구현이 쉽지만 속도가 느리다. 멀티 프로세스 다수의 프로세스를 실행하는 것이다. 멀티 프로세스는 프로세스 간 데이터, 힙, 스택영역 모두를 비공유 한다. 장점 하나의 프..
-
OS - 메모리CS/OS 2021. 2. 9. 21:04
메모리 메인메모리 프로그램이 실행되려면 해당 부분이 메모리에 올라가 있어야 한다. 다수의 프로세스들이 나누어 사용할 수 있도록, 서로의 영역을 침범하지 않도록 유지해야 한다. 이와 같은 기능을 OS에서 제공한다. 프로세스 메모리 구조 stack영역: 함수 호출과 관계되는 지역변수, 매개변수가 저장된다. 함수 호출 시 생성되고 함수가 끝나면 반환된다. 메모리의 높은 주소부터 할당된다. heap영역과 같은 공간을 공유한다. heap영역: 메모리를 동적으로 할당할 때 사용하는 메모리 영역으로 동적 메모리 영역이라고 부른다. 메모리의 낮은 주소부터 할당된다. stack영역과 같은 공간을 공유한다. data영역: 전역 변수, 정적 변수, 배열, 구조체 등이 저장된다. 프로그램이 실행될 때 생성되고 프로그램이 종료..