전체 글

주니어 개발자의 항해 일지
Computer Science/Operating System

혼자 공부하는 운영체제 - 10. 프로세스와 스레드

프로세스종류포어그라운드 프로세스백그라운드 프로세스PCB문맥(context)을 담고있으며 커널에 저장되는 자료 구조문맥PID레지스터 값프로세스 상태프로세스 상태 다이어그램생성(new)준비(ready)실행(running)대기(blocked)종료(terminated)프로세스 계층 구조쓰기 시 복사(copy on write)과 관련 부모 프로세스fork() 시스템 호출로 자식 프로세스 생성자식 프로세스exec() 시스템 호출로 프로그램 덮어쓰기CPU 스케줄링 정보메모리 관리 정보사용한 파일과 입출력장치 목록문맥 교환빈번한 문맥 교환은 오버헤드 발생 원인사용자 영역정적 할당 영역코드 영역텍스트 영역으로도 불림읽기 전용기계어가 담기는 영역데이터 영역전역변수가 담기는 영역동적 할당 영역힙 영역사용자가 직접 할당 가능..

Computer Science/Operating System

혼자 공부하는 운영체제 - 9. 운영체제

운영체제이중 모드커널 모드 커널 영역의 코드를 실행할 수 있는 모드하드웨어에 직접 접근가능커널운영체제의 핵심 서비스사용자 모드커널 영역의 코드를 실행할 수 없는 모드하드웨어에 직접 접근 불가소프트웨어 인터럽트(시스템 호출) -> 커널 모드로 전환 -> 운영체제를 통해 하드웨어 접근 서비스프로세스 관리프로세스 및 스레드프로세스 동기화교착 상태자원 접근 및 할당CPU 스케줄링메모리 할당과 페이징인터럽트 서비스 루틴파일 시스템 관리

Computer Science/Operating System

혼자 공부하는 운영체제 - 8. 입출력장치

장치 컨트롤러입출력제어기, 입출력모듈로도 불린다역할CPU와 입출력장치 간 통신 중개오류 검출데이터 버퍼링구성데이터 레지스터상태 레지스터제어 레지스터   장치 드라이버장치 컨트롤러 감지/제어   입출력 방법종류프로그램 입출력메모리 맵 입출력메모리와 입출력장치가 같은 주소 공간 사용고립형 입출력메모리와 입출력장치가 분리된 주소 공간 사용인터럽트 기반 입출력폴링CPU가 직접 입출력장치를 확인하는 방식인터럽트 기반 입출력과 반대되는 개념PICProgrammable Interrupt Controller다중 인터럽트 우선순위 판별 컨트롤러DMA 입출력DMA 컨트롤러 사용Direct Memory Access Controller(CPU 대신) 메모리와 입출력장치 간 통신 제어사이클 스틸링DMA 컨트롤러가 CPU보다 우..

Computer Science/Operating System

혼자 공부하는 운영체제 - 7. 보조기억장치

하드디스크(HDD)부품스핀들플래터섹터트랙실린더헤드디스크 암  데이터 접근 과정탐색시간접근할 데이터가 속한 트랙으로 헤더를 이동시키는 동안 걸리는 시간회전지연헤더의 위치로 플래터를 회전시키는 동안 걸리는 시간전송시간헤더가 섹터의 내용을 전송하는 동안 걸리는 시간   플래시메모리반도체 기반 저장장치USB 메모리, SD 카드, SSD 등..단위셀플래시메모리에서 가장 작은 단위종류하나의 셀에 몇 비트를 저장하는가SLC(Single Level Cell)MLC(Multi Level Cell)TLC(Triple Level Cell)페이지플래시메모리에서 읽기/쓰기 단위 상태의 종류Free ; 새 데이터를 저장할 수 있는 빈 상태Valid ; 유효 데이터를 저장하고 있는 찬 상태Invalid ; 유효하지 않은 데이터를 ..

Computer Science/Operating System

혼자 공부하는 운영체제 - 6. 메모리

메모리RAM ; Random Access Memory ; 일반적으로 메모리라고 불림, 휘발성보조기억장치는 비휘발성ex) HDD, SSD, CD, USB메모리 종류DRAMDynamic RAM ; 동적 램 ; 재충전 필요느림주기억장치에 주로 쓰임SRAMStatic RAM ; 정적 램 ; 재충전 불필요빠름캐시 메모리에 주로 쓰임SDRAMSynchronous DRAM ; 클럭과 동기화 된 DRAM ; 발전된 DRAMDDR SDRAMDouble Data Rate SDRAM ; 대역폭이 두 배인 SDRAM ; 전송 속도가 두 배인 SDRAM 주소물리 주소메모리 내의 물리적인 주소논리 주소CPU와 실행 중인 프로그램이 갖는 논리적인 주소MMU(Memory Management Unit) ; 메모리 관리 장치CPU와 주..

Computer Science/Operating System

혼자 공부하는 운영체제 - 5. CPU 성능 향상 기법

코어CPU 내 명령어를 실행하는 부품멀티 코어 프로세서코어가 여러 개 있는 CPU 스레드하드웨어 스레드 하나의 코어가 동시에 처리하는 명령어 단위논리 프로세서로도 불린다멀티 스레드 프로세서하나의 코어로 여러 개의 명령어를 동시에 처리하는 CPU소프트웨어 스레드하나의 프로그램에서 독립적으로 실행되는 단위일반적으로 스레드라고 불린다  명령어 병렬 처리 기법ILP, Instruction - Level Parallelism종류명령어 파이프라이닝동시에 여러 개의 명령어를 겹쳐 실행하는 기법수퍼 스칼라파이프라인을 여러 개 두어 명령어를 처리하는 기법비순차적 명령어 처리OoOE, Out-of-Order Execution비순차적으로 명령어를 처리하는 기법파이프라인 위험데이터 위험명령어 간 데이터 의존성에 의해 발생하는..

Computer Science/Operating System

혼자 공부하는 운영체제 - 4. CPU

ALU                                   레지스터   레지스터                                             |       |                                          (피연산자)                                                       ↓      ↓제어장치 ----(제어신호)---->      ALU     -----(플래그)----> 플래그 레지스터                                                   |                                              (결과값)                       ..

Computer Science/Operating System

혼자 공부하는 운영체제 - 3. 명령어

언어고급 언어사람이 이해하기 쉽도록 만든 언어실행을 위해선 일련의 과정을 거쳐 저급 언어로 변환되어야 한다컴파일 언어컴파일 과정을 통해 저급 언어로 전체 변환되어 실행된다이 때 변환된 코드를 목적 코드라 한다목적 파일 ; 목적 코드를 담고있는 파일목적 파일은 링킹 작업을 거쳐야 실행 파일이 된다인터프리터 언어인터프리트 과정을 통해 한 줄씩 저급 언어로 변환되어 실행된다 저급 언어컴퓨터가 이해하는 언어기계어어셈블리어 ; 기계어보다 한 단계 위의 읽기 쉬운 언어명령어 집합 구조(ISA)와 연관CPU마다 설계 구조에도 영향 CISC, RISC와 연관ex) x86-64 ISA, ARM ISA   명령어연산코드연산자라고도 한다연산코드 필드에 담긴다 유형데이터 전송산술논리 연산제어 흐름 변경입출력 제어 오퍼랜드피연..

Computer Science/Operating System

혼자 공부하는 운영체제 - 2. 데이터

정보 단위비트(Bit)0과 1로만 표현하는 가장 작은 정보 단위 -> 2진법과 연관바이트(Byte)8비트를 묶어 부르는 단위 -> ASCII 코드와 연관킬로바이트(KB = 10^3Byte)메가바이트(MB = 10^6Byte)워드(Word)CPU가 한 번에 처리할 수 있는 데이터 크기-> CPU마다 다름, 일반적으로 32비트 or 64비트가 한 워드  진법이진법0과 1로만 숫자를 표현하는 방법이진법의 음수 표현모든 0과 1을 반대로 뒤집고 1을 더한 값100 -> 001, 1011 -> 0101CPU는 음수 구분을 위해 부호 플래그 사용십육진법0부터 10(A), 11(B), ... , 15(F)로만 각 자릿수를 표현하는 방법이진법과 십육진법 간 변환십육진법 -> 이진법 ; 각 자릿수를 떼어 네 자리의 이진..

Computer Science/Operating System

혼자 공부하는 운영체제 - 1. 컴퓨터 구조

컴퓨터가 이해하는 정보데이터명령어  컴퓨터를 구성하는 부품CPU(Central Processing Unit)메모리(main memory, RAM)보조기억장치(secondary storage)입출력장치(I/O device)이 네 가지 부품들은 모두 메인보드(마더보드)에 연결된다이 네 가지 부품들은 모두 시스템 버스를 통해 정보를 주고 받는다   CPUCPU의 정의메모리에 저장된 명령어를 읽어 들이고, 해석하고, 실행하는 부품CPU의 구성 요소ALU(산술논리연산장치, Arithmetic Logic Unit)연산 작업의 주체레지스터임시 저장 장치제어장치(control Unit)제어 신호를 내보냄명령어 해석 장치  메모리메모리의 정의실행 중인 프로그램의 데이터와 명령어를 저장하는 부품메모리의 특징메모리는 정보를..

git-sun
개발 항해 일지