본문 바로가기
728x90

개발자 도전기/[OS] 운영체제 개념 익히기4

운영체제(Operating System) | 메모리(Memory) 스레드까지 하다 갑자기 메모리까지 점프... 어쩔 수 없다. 지금 핀토스 virtual memory를 진행하고 있어서 일단 메모리 관련 OS부터 정리하려고 한다. 메모리 시스템은 여러 가지 용량, 비용, 접근 시간을 가지는 저장 장치들의 계층구조이다. 메모리 계층구조는 아래 사진 참조! CPU 레지스터: 가장 자주 이용하는 데이터 보관(locality) 캐시: SRAM. CPU부근에서 비교적 느린 메인메모리에 저장된 데이터와 인스트럭션들의 부분집합에 대한 준비장소 메인메모리: DRAM. 크고 느린 디스크들에 저장된 데이터를 준비하는 데 사용, 이 디스크들은 네트워크로 연결된 다른 머신들의 디스크에 저장된 데이터를 위한 준비장소 1. RAM(랜덤-접근 메모리) | SRAM (정적 RAM) SRAM, 즉 정.. 2021. 10. 26.
운영체제(Operating System) | 스레드(Thread) 프로세스에 이어 스레드에 대해 정리하도록 하겠다. 1. 스레드(Thread)의 개념 스레드는 프로세서(CPU) 활용의 기본 단위이다. 프로세스의 제어 요소 외의 코드, 데이터 및 자원들은 프로세스의 다른 스레드들과 공유한다. 아래의 그림으로 예를 들어보자. 아래 중앙의 동그라미는 워드 문서를 편집하는 프로세스이다. 한 프로세스 안에 여러 개의 스레드가 존재하는데, 어떤 스레드는 입력과 관련된 제어, 다른 스레드는 문서에 이미지나 텍스트는 보여주는 스레드, 또 다른 하나는 데이터를 저장하는 스레드이다. 만약 스레드가 하나였다면 어떻게 되었을까? 편집기에 "안녕하세요"를 입력하려고 한다. 키보드로 "ㅇ"을 치면 입력에 응답하는 스레드가 일을 할 것이고, 그 때 동안 워드 문서창은 일을 못 한다(스레드가 키보.. 2021. 9. 28.
운영체제(Operating System) | 프로세스 관리 전 장에서 프로세스는 실행 중인 프로그램이라고 했다. 이번 글에서는 프로세스에 대해 더 자세하게 정리하려고 한다. 1. 프로세스 정의 프로세스는 실행 중인 프로그램으로, 커널에 등록되고 커널이 관리하는 작업이다. 프로세스는 각종 자원들을 요청하고 할당 받을 수 있는 개체(entity)이며, 실행 중에도 각종 자원을 요구하고 할당, 반납이 진행된다(active entity). * 자원(Resource)? 커널의 관리 하에 프로세스에게 할당/반납 되는 수동적 개체(passive entity) 하드웨어 자원: CPU, memory, 모니터, 키보드 등 소프트웨어 자원: 메시지, 시그널, 파일 등 * cf) Job vs Process 프로세스 이전에 작업(Job)이라는 개념이 있다. Job은 실행할 프로그램 +.. 2021. 9. 28.
운영체제(Operating System) | 운영체제 개요 어제를 기점으로 악명이 자자한 핀토스를 시작하게 되었다. 정글 1기 분들 핀토스 얘기 나올 때마다 모두 다 하나 같이 PTSD 오시는거 보고 겁나 쫄아 있는 상태임... pintOS, 이제 과제 시작되었는데 솔직히 뭔지 모르겠다. 운영진님들이 올려주신 GitBook을 보면, 핀토스는(pintos-kaist) 심플한 운영체제(x86-54) 프레임워크라고 한다. 커널 스레드, 사용자 프로그램 로드 및 실행, 파일 시스템을 지원하지만 이 모든 것을 매우 간단한 방식으로 구현할 것이라고 한다. (이 양반들의 심플, 간단이라는 단어하고 내가 아는 단어하고 다른 단어인 듯;;) 여하튼 핀토스 과제를 하기 위해서는 전 글에서도 계속 얘기했던 것처럼 기본적인 OS에 대한 지식이 탑재되어 있어야 한다. 전에 malloc.. 2021. 9. 28.
728x90
LIST