CS 17

팩토리 매서드 패턴 vs 템플릿 패턴

토비의 스프링에서 배웠던 디자인 패턴을, 운동하던 중 다시 상기하게 되었는데,정확한 내용이 잘 떠오르지 않아, 다시 찾아보았습니다. 이전에 챗GPT에 물어봐서 정리한 내용은, 다시봐도 잘 모르겠어서구글링으로 관련 내용 찾아보았습니다. https://western-sky.tistory.com/40 팩토리 메서드, 템플릿 메서드 패턴1. 팩토리 메서드 패턴 팩토리 메서드 패턴(Factory Method Pattern)이란 객체 생성을 하는 클래스를 따로 두는 것입니다. 그래서 공장(Factory)이라는 표현을 쓰나봅니다. 🙂 실질적인 클래스의 구현은western-sky.tistory.com 아주 심플하게 나눠보면,팩토리 메서드 패턴 - 객체생성하는 공장을 따로 두는 디자인 패턴.템플릿 메서드 패턴 - 알고..

운영체제 Ch.7 파일 시스템

7-1. 파일과 디렉토리 파일 이름, 파일을 실행하기위한 정보, 파일 관련 부가 정보(속성 또는 메타데이터)로 나뉨. 파일 유형 : 운영체제가 인식하는 파일 종류, 확장자를 이용. 시스템 호출 : 어떤 응용 프로그램도 임의로 파일조작이 불가하고, 운영체제에 위탁하여야 하며 운영체제는 파일 연산을 위한 시스템 호출 제공. 디렉토리 (윈도우에서의 폴더) 과거 운영체제에서는 1단계 디렉토리였으나, 지금은 트리 구조 디렉토리로 구성. 최상위 디렉토리는 루트 디렉토리로 / 로 표현. 절대경로 : 최상위 디렉토리부터 나타나는 경로. (ex: /home/home.jsp) 상대경로 현재 디렉토리부터 시작하는 경로. (ex:/home 에서 home.jsp의 경로는 /home.jsp) 현재 디렉토리를 .으로, 부모 디렉토..

카테고리 없음 2023.01.30

운영체제 Ch.6 가상 메모리

6-1. 연속 메모리 할당 연속 메모리 할당 연속적인 메모리 공간을 할당하는 방식. 스와핑 대기 상태가 된 프로세스나, 오랫동안 사용되지 않은 프로세스를 임시로 보조기억장치 일부 영역으로 보내고, 메모리상 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식. 스왑 영역 : 프로세스들이 저장되는 보조기억장치의 일부 영역. 스왑 인 : 프로세스가 스왑영역(보조기억장치 영역)에서 메모리로 옮겨지는 것. 스왑 아웃 : 프로세스가 메모리에서 스왑영역으로 옮겨지는 것. 메모리 할당 최초적합 운영체제가 메모리 내 빈 공간을 순서대로 검색하다가, 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식. 최적 적합 운영체제가 메모리 내 빈 공간을 모두 검색한 뒤, 프로세스가 적재될 수 있는 공간 중 가장 ..

운영체제 Ch.5 교착

교착 상태 (deadlock) 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상 자원 할당 그래프 (resource-allocation graph) 어떤 프로세스가 어떤 자원을 사용하고 있고, 어떤 프로세스가 어떤 자원을 기다리고 있는지 등을 표현하는 간단한 그래프 프로세스는 원으로, 자원의 종류는 사각형으로 표현 사용할 수 있는 자원의 갯수는 사각형 내에 점으로 표현 프로세스가 어떤 자원을 할당받아 사용 중이라면, 자원에서 프로세스를 향해 화살표로 표시. 프로세스가 어떤 자원을 기다리고 있다면, 프로세스에서 자원을 화살표로 표시. 교착 상태 발생 조건 상호 배제 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없는 상태. 점유와 대기 자원을 할당받은 상태에서, 다른 자원을 할당받기를 기다..

운영체제 Ch.4 동기화

4-1. 동기화 개요 프로세스 동기화 프로세스들 사이의 수행 시기를 맞추는 것. 실행 순서 제어 : 프로세스를 올바른 순서대로 실행하기. 상호 배제 : 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기. 공유 자원 전역변수, 파일, 입출력장치, 보조기억장치 등 프로세스들이 공유하는 자원. 임계 구역 (critical section) 동시에 실행하면 문제가 발생하는 자원에 접근하는 코드 영역. 레이스 컨디션 (race condition) 잘못된 실행으로 인해 여러 프로세스가 동시에 임계 구역의 코드를 실행하여 문제가 발생하는 상황. 상호 배제를 위한 동기화의 세 가지 원칙 상호 배제 (mutual exclusion) 한 프로세스가 임계 구역에 진입했다면, 다른 프로세스는 임계구역에 들어올 ..

운영체제 Ch.3 CPU 스케쥴링

3-1. CPU 스케쥴링 개요 CPU스케쥴링 : 운영체제가 프로세스들에게 공정하고 합리적으로 CPU자원을 배분하는 것 프로세스 우선순위 프로세스마다 우선순위가 다름. 입출력 집중 프로세스 (I/O bound process) 입출력 작업이 많은 프로세스. 실행 상태보다 입출력을 위한 대기시간이 김. (CPU의 속도보다, 입출력장치의 속도가 느린 경우가 대부분이기 때문) CPU 집중 프로세스 (CPU bound porcess) CPU 작업이 많은 프로세스 운영체제는 각 프로세스에 PCB에 우선순위를 기록함. 스케쥴링 큐(Scheduling queue) CPU가 PCB를 일일히 탐색하는 것은 비효율적이기 때문에, 스케쥴링 큐에 각 프로세스의 목록을 적재. 준비 큐 (ready queue) : CPU를 이용하고..

운영체제 Ch.2 프로세스와 스레드

10-1. 프로세스 개요 프로세스 : 실행중인 프로그램. foreground process : 사용자가 보는 앞에서 실행되는 프로세스 background process : 사용자가 보지 못하는 뒤에서 실행되는 프로세스 유닉스 체계의 운영체제 : 데몬 (daemon) 윈도우 운영체제 : 서비스 (service) 프로세스 제어 블록 (PCB : Process Control Block) 프로세스와 관련된 정보를 저장하는 자료 구조. 대표적으로 프로세스ID, 레지스터 값, 프로세스 상태, CPU 스케쥴링 정보, 메모리 관리 정보, 사용한 파일과 입출력 장치 목록 등을 저장. (운영체제마다 조금씩 다름) 문맥 교환 문맥(context) : 하나의 프로세스 수행을 재개하기 위해 기억해야 할 정보 실행 프로세스 변경..

운영체제 Ch.1 운영체제 시작하기

참고한 책이 컴퓨터구조+운영체제라 본래는 Ch.9이지만, 나누는 편이 정리할땐 나을듯하여 챕터를 분류하였습니다. 1-1. 운영체제 기초 운영체제(Operating System) 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램. 운영체제는 메모리 내 커널 영역(kernel space) 이라는 공간에 따로 적재되어 실행, 나머지 프로그램들은 사용자 영역(user space)에 적재. 1-2. 운영체제의 큰 그림 커널(kernel) : 운영 체제의 핵심을 담당하는 영역. 커널 영역 외에 사용자 인터페이스(UI:User Interface)도 있음. 사용자 인터페이스는 다시 그래픽 유저 인터페이스(GUI:Graphical User Interface)와 커맨드 라인 인..

컴퓨터구조 Ch.8 입출력장치

8-1. 장치 컨트롤러와 장치 드라이버 장치컨트롤러(device controller, 입출력제어기(I/O controller), 입출력 모듈(I/O Module))를 사용하는 이유 입출력 장치의 종류가 너무나 다양하다. 일반적으로, CPU와 입출력장치의 데이터 전송률이 낮다. 장치컨트롤러의 역할 CPU와 입출력장치 간의 통신 중개 오류 검출 데이터 버퍼링 장치 컨트롤러의 구성 데이터 레지스터 CPU와 입출력 장치 사이에 주고받은 데이터가 저장. 상태 레지스터 입출력장치의 상태 정보가 저장 (오류여부, 작업여부 등) 제어 레지스터 입출력 장치가 수행할 내용에 대한 제어 정보와 명령을 저장. 장치 드라이버(device driver) 장치 컨트롤러의 동작을 감지하고 제어하여 장치 컨트롤러가 컴퓨터 내부와 정보..

컴퓨터구조 Ch.7 보조 기억 장치

7-1. 보조기억장치의 종류 하드디스크 : 자기(Magnetic) 디스크 라고도함 (이후 A드라이브 플로피디스크도 자기방식을 이용하면서 이름이 바뀜), 비휘발성, 순차접근이 가능한 보조기억장치. 플래터 : 동그란 원판, 데이터가 저장되는 공간. 트랙 : 동심원 단위로, 스핀들의 중심으로부터 같은 거리에 떨어진 원들 중 한개의 층. 섹터 : 하드디스크의 가장 작은 전송단위로, 트랙의 일부를 이룸. 실린더 : 트랙들의 집합. 스핀들 : 플래터를 회전시키는 구성요소, 속도단위 : RPM (Revolution per Minute) 헤드 : 플래터를 대상으로 읽고 쓰는 구성 요소 디스크 암 : 헤드를 원하는 위치로 이동시키는 고정대. 탐색 시간 : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간. 회전..