
운영체제의 주요한 역할과 컴퓨터 시스템에서 주요한 하드웨어를 소개했다. 앞으로 운영체제에서 설명해야할 중요한 개념들을 짓고 넘어가는 장 컴퓨터의 하드웨어 자원을 할당하고 분배하고 관리하는 software이다. 이때 하드웨어는 메모리, CPU, 입출력 장치, 저장장치가

user interface: user와 컴퓨터의 연결 CLI: command line interface/ ex. shellGUI: graphical user interface / ex. windoes, macosTouch-Screen Interface : android

프로세스는 실행 중인 program 혹은 메모리에 로드된 프로그램이다. 현대 os는 multi threads를 다루는 Process를 지원한다. text, data 부분은 고정되며, stack과 heap 부분은 동적으로 바뀐다. text: 실행 코드data: 전역 변수

thread는 cpu 연산의 가장 작은 단위 스레드는 thread ID, program counter, reigster set, stack으로 구성된다.같은 프로세스 안에 있는 스레드들은 code, data, os resource를 같이 공유한다.multi-thread

CPU → IO → CPU→ IO → CPU프로세스 실행은 다음과 같이 CPU실행과 I/O wait의 연속인 cycle이다.프로세스는 이 2개의 상태를 번갈아간다. cpu busrt는 cpu 명령을 실행하는 것을 말하고 cpu burst time은 해당 프로세스의 어떤

핵심 내용 및 예상 질문 뮤텍스, 세마포어가 뭔지, 차이점은? Race Condition이란? 프로세스가 병렬로 실행될 수 있다는 것은(비동기) 데이터 일관성 유지에 문제가 생긴다는 것을 의미두 개 이상 프로세스가 동시에 데이터를 조작하는 예: 생산자 - 소비자
공룡책으로 정리하는 운영체제 - CHAPTER 7. 교착상태(Deadlocks)핵심 내용 및 예상 질문 교착상태(DeadLock)가 무엇이며, 4가지 조건은? 교착상태 해결 방법 4가지? 시스템은 경쟁하는 프로세스들 사이에 분배되어야할 유한한 자원으로 구성Requ

공룡책으로 정리하는 운영체제 - CHAPTER 8. 메모리 관리 전략(Memory Management Strategies)🦕 공룡책으로 정리하는 운영체제 Ch.8: Memory-Management Strategies핵심 내용 및 예상 질문 외부 단편화와 내부 단편화
공룡책으로 정리하는 운영체제 - CHAPTER 9. 가상 메모리(Vritual Memory)핵심 내용 및 예상 질문 Thrashing이 무엇인가? Page fault가 8장에서 살펴본 메모리 관리 알고리즘들은 현재 실행되고 있는 코드가 반드시 물리 메모리에 존

Strategy Pattern(전략)은 Algorithm Family를 정의하고 각 알고리즘을 캡슐화 한 뒤 런타임에서 알고리즘을 서로 바꿔 사용할 수 있는 디자인 패턴Strategy (Compositor)지원되는 모든 알고리즘에 사용되는 공통적인 인터페이스를 정의합니

관찰 중인 객체에서 발생하는 이벤트를 여러 다른 객체에 알리는 메커니즘을 정의할 수 있는 디자인 패턴Combine 프레임워크 - PublisherNotificationCenterSubject (Publisher)Observer들을 가지고 있으며 개수는 제한이 없습니다.

복잡하게 생성되어야 할 객체를 구현할 때 구성을 분리하여 다른 표현으로 만들 수 있게 하는 디자인 패턴Director input을 받고 builder와 이를 조정한다. iOS 개발에서는 viewcontrolller이나 viewcontroller에서 사용하는 도우

자발적인 디바이스들의 상호 연결된 묶음같은 네트워크의 autonomous 기기들은 서로 소통 가능Distributed sysetm과 비교Client - Server 리소스가 한 곳에 집중되어 있는 환경에서 주로 사용하며, 정보관리에 효율적client가 많아지면 과부화

안녕하세요! Network 편으로 돌아왔습니다. 네트워크는 개인적으로 다른 cs 보다 많이 어렵다고 느끼는데요😨 오늘은 socket과 port에 대해서 정리해보려고 합니다. 항상 많이 들어봤지만 남에게 설명할 수 없는 수준이어서 이번에 확실히 정리해보려고 합니다. 네
컴퓨터의 프로세서 내에서 자료를 보관하는 아주 빠른 기억 장소이다. 일반적으로 현재 계산을 수행중인 값을 저장하는 데 사용된다. 대부분의 현대 프로세서는 메인 메모리에서 레지스터로 데이터를 옮겨와 데이터를 처리한 후 그 내용을 다시 레지스터에서 메인 메모리로 저장하는

리눅스와 유닉스(Unix)는 모두 운영 체제의 범주에 속하지만, 그들은 원래의 개발자와 설계 목표, 라이센스 등에서 몇 가지 중요한 차이점을 가지고 있습니다.업로드중..사진은 리눅스 개발자인 리눅스 토발즈의 대표적인 사진 가져왔습니다.. ㅎ여기에 각각의 주요 차이점을
쉘 스크립트(Shell Script)는 리눅스와 유닉스 계열 운영 체제에서 사용되는 스크립트 언어로, 쉘(Shell)이라 불리는 명령 줄 인터페이스를 통해 시스템 명령어를 자동화하고 실행하는 데 사용된다. 쉘 스크립트는 일련의 명령어들을 순차적으로 실행하는 스크립트 파
XML은 데이터를 구조적으로 표현하고 저장하기 위한 마크업 언어이다. 주로 데이터 교환의 목적으로 사용되며, HTML과 유사하지만 보다 유연하고 확장성이 뛰어나다. HTML : 데이터를 보여주기 위한 목적XML : 데이터를 저장하고 전달할 목적태그 기반: 데이터를 계층

Git은 협업 및 소프트웨어 개발에서 버전 관리를 위한 분산형 버전 관리 시스템입니다.주로 소스 코드를 관리합니다. Git은 다음과 특징을 가지고 있습니다. 버전 관리 파일이나 디렉토리의 변경사항을 추적하고, 이를 버전으로 기록합니다. 기록된 버전 중 하나를 선택하여
캡슐화
함수형 프로그래밍 순수 함수 불변성 Immutable

OS는 메모리에 있는 프로세스를 어떻게 관리할까? 프로세스 마다 요구하는 메모리의 크기가 다르고 할당 시점 및 해제 시점이 다릅니다. 차례대로 빈 공간에 할당하면 된다고 생각할 수 있지만 중간에 위치하는 프로세스가 해제된다면 어떻게 관리해야할까? 오늘은 운영체제의 Me

Git은 협업 및 소프트웨어 개발에서 버전 관리를 위한 분산형 버전 관리 시스템입니다.주로 소스 코드를 관리합니다. Git은 다음과 특징을 가지고 있습니다. 버전 관리 파일이나 디렉토리의 변경사항을 추적하고, 이를 버전으로 기록합니다. 기록된 버전 중 하나를 선택하여

Git!! 은 버전 관리 시스템으로서 코드의 변경 사항을 추적해 협업에서 필수적으로 사용되는 SW 중 하나입니다.Git을 사용할 때 기본적인 명령어만 알고 사용할 줄 알고 내부 동작원리에 대해 알지 못해서 이번 기회에 내부 동작 원리에 대해서 작성해보려고 합니다! 이
오늘은 FileManager에 대해서 알아보겠습니다. 가끔 사용할 일이 생기는데 자주 사용하지 않다보니까 사용할 때 마다 구글링하게 되서 이참에 확실히 정리해보려고 합니다. FileManager > 애플의 macOS 및 iOS 운영 체제에서 파일 시스템과 상호작용하기

객체 지향 프로그래밍(OOP)하면 제일 먼저 떠오르는게 무엇인가요? 저는 OOP 4가지 특징(캡슐화, 추상화, 다형성, 상속)과 SOLID 원칙이 바로 떠오릅니다. 요즘 부스트캠프 멤버십 과정을 진행하면서 객체 지향 프로그래밍 적용하려고 하는데 제가 객체지향적으로 코드

안녕하세요! 2편으로 돌아온 ‘Swift로 알아보는 SOLID 원칙’ 포스팅입니다. 오늘은 SOLID 원칙에서 ‘LID’에 대해서 알아보겠습니다. L : Liskov Substitution Principle (LSP) - 리스코프 치환 원칙I : Interface
안녕하세요 오늘은 Testing과 더 친해지기 위해서 테스팅에 대한 포스팅을 작성하고자 합니다! 최근 유닛테스트와 더 가까워지기 위해서 XCTest를 이용하여 많은 테스트 코드를 작성하고 있습니다. 🫡 단독 모듈의 동작에 대해서 유닛테스트를 하는 건 어렵지 않습니다. 해당 모듈에 대해서만 독립적인 테스트를 수행하면 되니까요. 그렇다면 테스트 하려는 객...