반응형

**극꼼이네 GGTales** 307

[운영체제(OS)] 2-1) 운영체제 서비스

CPU Memory Disk & I/O device 1) 유저 인터페이스(User Interface) GUI(Graphical User Interface) : 그래픽 기반의 유저 인터페이스(흔히 마우스, 키보드로 입력하여 수행사항을 보여줌). 화면의 여러 그래픽(UI)들과 상호작용하여 명령을 전달합니다. 대부분의 PC 사용자들은 GUI를 통해 상호작용합니다. CLI(Command Line Interface) : 운영체제 대부분이 CLI를 프로세스가 시작하거나 사용자가 처음 로그온할 때 수행되는 특수 프로그램으로 취급. CLI 명령어 해석기는 Shell이라고 불립니다. 주로 시스템 관리자 및 시스템에 자세한 정보를 알고 있는 경우는 CLI를 통해 상호작용합니다. CLI가 사용자의 명령을 가져와서 실행하는 ..

[운영체제(OS)] 1-2) 부팅 매커니즘과 인터럽트(interrupt)

- 부트스트램(bootstrap, 부팅) : pc의 전원 버튼을 누른 직후부터 운영체제가 메모리에서 동작하기 시작할 때 까지의 과정 1) 메인보드에 전력 공급 2) ROM or EEPROM에 저장된 BIOS 루틴(펌웨어. Basic Input Output System) 시작 3) BIOS는 셀프테스트로 주변 하드웨어 체크 4) MBR(Master Boot Record)에 존재하는 부팅정보를 읽어오는 부트스트랩 실행 5) RAM에 Bootloader를 적재. 디스크에 있는 OS(커널) 코드를 복사하여 메모리에 적재. 초기화. - 입출력장치와 CPU는 동시 실행 가능. - 각 장치 컨트롤러는 특정 디바이스 유형을 담당. 로컬 버퍼 존재. - CPU는 메인 메모리 ~ 로컬 버퍼간 데이터 이동시켜줌. - 입출력..

[운영체제(OS)] 1-1) 컴퓨터 시스템 기본 구성

: 하드웨어, 운영체제, 응용 프로그램, 사용자 1) 하드웨어 : 기본 연산을 하는 자원을 제공하는 장치. 2) 운영체제 : 응용 프로그램 간의 하드웨어 사용을 제어, 조정하는 역할. 3) 응용 프로그램 : 웹 브라우저, 엑셀 등의 애플리케이션. 4) 사용자 : 요청을 하는 주체(사람, 컴퓨터 등). 운영체제(매개체)를 통해 하드웨어에 명령어 전달. - 리소스 할당의 주체 : 모든 리소스 관리. 데드락 현상 방지. - 제어 프로그램 : 프로그램 실행을 제어하고, 오류 및 부적절한 사용을 방지. - 운영체제의 목적 : 유저 프로그램을 구동하고, 유저 문제를 쉽게 해결. 컴퓨터 시스템을 쉽게 사용. 컴퓨터 하드웨어를 효율적으로 사용. - 운영체제 = 커널(컴퓨터를 부팅하면 항상 실행되는 하나의 프로그램) +..

[운영체제(OS)] 1. 운영체제 개요 키워드

- RAM(Random-Access Memory) : 메인 메모리. - ROM(Read-Only Memory) : 읽기 전용 메모리. 컴퓨터의 전원이 끊어져도 유지됨. 보통 컴퓨터에 기본적인 운영 체제 기능이나, 인터럽트를 내장시키기 위해 이용. - EEPROM(Electrically Erasable Programmable Read-Only Memory) : 프로그램 가능 읽기 전용 메모리. 속도가 느리므로 주로 사용되지 않는 정적 프로그램과 데이터를 포함. - 펌웨어(Firmware) : 쓰기 작업이 자주 발생하지 않고 비휘발성인 메모리이며, 하드웨어의 제어와 구동을 담당하는 운영체제. - HDD(Hard Disk Drive) : 보조저장장치. 대부분의 프로그램(시스템 및 응용 프로그램)은 메모리에 적..

package-lock.json

유니티 버전을 업데이트하거나 할 때 생기는 package-lock.json 파일이 무엇인지 알아보았습니다. 뭔가 싶어서 제거하고 커밋에 포함시키지 않았었는데, package-lock.json 은 프로젝트에 설치된 노드 모듈들의 의존성 트리를 기록하고 있기 때문에 커밋에 꼭 포함시켜 주어야 합니다. "com.unity.services.core": { "version": "1.4.2", "version": "1.4.3", "depth": 1, "source": "registry", "dependencies": { "com.unity.modules.unitywebrequest": "1.0.0", "com.unity.nuget.newtonsoft-json": "3.0.2", "com.unity.modules.a..

[Unity]/[Unity] 2022.11.01

[Git] SubModule 추가하는 방법

1. 서브모듈(SubModule)이란? : 별도의 Git repository(하위 repository)를 다른 디렉토리로 분리해 넣는 것입니다. 프로젝트에 쓰이는 데이터를 관리하는 별도의 repository를 만들어 프로젝트와 연동되게 하고자 합니다. 아래 과정을 거쳐 서브모듈을 만들어 보겠습니다. 1. 서브모듈 repository를 추가하는 방법 아래 명령어를 상위 repository에 입력해 서브모듈을 추가해줍니다. $ git submodule add [submodule repository 주소] [submodule repository path] : submodule repository의 경로를 이미 생성해뒀을 경우. $ git submodule add [submodule repository 주소] ..

[Git] 2022.10.31

Naming 규칙(camel, kebab, pascal, snake case)

프로젝트를 시작할 때 변수명, 클래스명 등등에 규칙을 정하고 시작하는데요, 많이 사용되는 네이밍 케이스를 알아보겠습니다. 1. Camel case(카멜식) : 첫 글자는 소문자로 시작하고, 두번째 단어부터 대문자로 표현합니다. 원문 : Naming Case 카멜식 : namingCase 2. Pascal case(파스칼식) : 카멜식과 비슷한데, 첫 글자를 대문자로 시작합니다. 원문 : Naming Case 파스칼식 : NamingCase 3. Kebab case(케밥식) : 모두 소문자로 표현하며, 단어와 단어 사이에 하이픈(-)을 사용합니다. 원문 : Naming Case 케밥식 : naming-case 4. Snake case(스네이크식) : 케밥식과 비슷한데, 스네이크식은 언더바(_)를 사용합니다..

[Computer Science] 2022.10.31

[Git] Git Server Protocol

Git 은 Local, SSH, Git, HTTP/HTTPS 4개의 프로토콜로 원격 저장소와 통신합니다. 1. Local Protocol : remote repository가 단순히 같은 시스템의 다른 디렉토리에 있을 때 사용합니다. * 장점 : 간단하고, 기존의 네트워크나, 파일의 권한을 그대로 사용하기 때문에 설정하기 쉽습니다. * 단점 : 다양한 상황(집에서 작업한다던가)에서 접근할 수 있게 디렉토리를 공유하는 것이 어렵고, 모든 사용자가 remote repository에 접근할 수 있으므로 보호가 어렵습니다. 2. HTTP Protocol Smart HTTP : SSH, Git 프로토콜처럼 통신합니다. SSH는 키를 발급하고 관리해야 하는 번거로움이 있는 반면, HTTP는 사용자의 이름과 암호로 ..

[Git] 2022.10.30

[운영체제(OS)] 9-6) Dynamic Loading & Overlays

Loading : 메모리를 데이터를 옮기는 것. : 동적 적재. 프로세스가 시작하고, 필요한 작업이 호출될 때 해당 작업을 메모리에 적재(로딩)하는 방식으로 메모리를 효율적으로 사용할 수 있게 해줍니다. * 장점 : 자주 호출되지 않는 루틴(ex. 에러 처리)에 대해 특히 효율적. : 오버레이의 사전적 의미는 덮어씌우는 것입니다. 메모리보다 프로세스가 더 클 때 사용되는 기법입니다. 현재는 VMM(Virtual memory management)이 나온 후 필요없는 기법이지만 한 때 정말 유용했던 기법이라 합니다. 다음과 같이 symbol table, common routines(공동 루틴들), pass1, pass2 등으로 이뤄진 프로그램이 있습니다. pass1이 수행된 후 pass2가 수행되는 프로그램..

[운영체제(OS)] 9-5) 메모리 내 프로세스 구조 (Process Address Space)

프로세스 메모리 구조를 알아보기 전에, 프로세스가 무엇이냐에 대해 간단하게 짚고 넘어갈겁니다. 프로그램이 실행 파일이라면, 프로그램 안에서 실행되고 있는 주체를 프로세스라 합니다. 각각의 프로세스는 ID를 가지며, 이를 줄여서 PID(Process ID)라 하는데요, 윈도우의 작업관리자, 맥의 활성상태보기 앱에서도 다음과 같이 실행중인 프로세스들을 확인할 수 있습니다. 이를 더 자세히 살펴보면 다음과 같습니다. 메모리 영역에 대해 잘 모르신다면 아래 포스팅을 잠깐 보고 오셔야 합니다. [C#] 메모리(+ 가비지) 1. C# 메모리 구조 2. C# 메모리 관리 1. C# 메모리 구조 메모리의 영역에는 4가지가 있습니다. Stack 영역 지역 변수, 매개 변수를 저장. 컴파일 시점에 크기를 할당하는 정적 할..

반응형