[OS] Lecture 4. Thread management
·
OS
프로세스 자원 1. 할당 2. 제어 스레드== 제어 하나의 프로세스, 할당 받은 자원들을 제어= 스레드 제어의 요소(스레드의 요소) - 제어 정보(SP, PC, 상태 등) - 지역 데이터(스택에 보관) - 스택 자원의 요소 - 코드 - 전역 데이터 - 힙 같은 프로세스의 스레드들은 자원을 공유한다. Thread - 프로그램(프로세스) 실행의 단위 - LWP(Light Weight Process): 자원과 제어 중 제어 부분만 해당하기 때문에 Lgiht 라고 한다. - 프로세서(CPU) 활용의 기본 단위 - 제어 요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레들과 공유 스레드의 장점 - 자원 공유(Resource sharing) context switching X-> 커널의 개입 X-> over..
Entity, DTO, VO 차이
·
Programming/Spring
Entity 실제 DB table과 1:1 mapping 되는 Class - Domain Logic만 가지며 Presentation Logic을 가지고 있어서는 안된다. - Spring 3 Tier인 Persistence, Buseniss, Presentation Tier 중 Persistence Tier에서 사용 - Setter 지양. 객체의 일관성. 변경되게 되면 다른 Class에 영향(실제 테이블과 매핑되기 때문) DTO(Data Transfer Object) 계층 간 데이터 교환을 위한 객체 - getter, setter 메소드만 갖는다. 다른 로직은 없다. - DB의 데이터가 Presentation Logic Tier로 넘어올때는 DTO로 변환되어 오고가는 것 - View와 통신하며 자주 변경 ..
트랜잭션이란?
·
Database
Transaction= 거래 - DML(Data Manipulation Language), 즉 삽입(INSERT), UPDATE, DELETE와 관련된 논리적인 작업 - RDMS은 데이터를 처리할 때 트랜잭션을 통해 정상 종료와 비정상 종료에 대해 데이터의 신뢰성과 일관성 보장 - 즉, 데이터베이스의 데이터 무결성이 보장되는 상태에서 DML 작업을 완수하기 위한 기본 작업 단위 트랜잭션의 특징= ACID 1. 원자성(Atomicity) - 트랜잭션이 DB에 모두 반영되거나, 혹은 전혀 반영되지 않아야 한다. - 트랜잭션 내 모든 명령은 반드시 완벽히 수행되어야 하며, 어느 하나라도 오류가 발생하면 롤백(전부 취소) 2. 일관성(Consistency) 트랜잭션이 완료되면 데이터베이스의 데이터는 일관되게 유..
CPU, Main Memory(Primary Memory), Disk(Secondary Memory)
·
OS
CPU(= Central Processing Unit) - 중앙처리장치 - 컴퓨터의 모든 연산과 작업을 처리하는 장치 CPU 동작과정 1. Main Memory(MM)는, I/O 디바이스에서 입력 받은 데이터 또는 Disk에 저장된 프로그램을 읽는다. 2. CPU는 프로그램을 실행하기 위해, MM에 저장된 프로그램 명령어와 데이터를 읽어서 처리하고, 결과를 MM에 저장 3. MM는 처리 결과를 DIsk에 저장하거나 출력장치로 보낸다. 4. CPU의 제어장치는 1~3 과정에서 명령어가 순서대로 실행되도록 제어한다. 기억장치(Memory) 프로그램, 데이터, CPU 연산 결과를 저장하는 장치 1. 주기억장치. RAM. Primary Memory= Main Memory CPU 의 연산 결과를 임시로 저장해주며..
웹브라우저, 웹서버 인코딩 방식 차이
·
Issues
이슈 웹에서 한글이 깨지는 현상 원인 웹브라우저와 웹서버가 서로 다른 인코딩 방식을 사용 웹브라우저는 2Byte씩 처리하는 UTF-8 인코딩 방식을 사용하는데, 웹서버는 1Byte씩 처리하는 ISO-8859-1 방식으로 인코딩을 하면, 서로 다른 인코딩 방식 때문에 적절한 디코딩이 이루어지지 않는 것이다. 한글을 POST 방식과 GET 방식으로 서버에 전송하여, 서버 콘솔을 통해, 서버에 어떻게 값이 전달되었는지 확인해 보았다. GET 방식과 POST 방식 모두 '천재승'이라는 문자가 "퍼센트 인코딩 방식"으로 인코딩이 되었음을 알 수 있다. 퍼센트 인코딩 방식은 RFC 3986 규약에 따라 표준화된 방식이다. URL를 통한 데이터 통신은 아스키코드만으로 전송되기로 규정되어있다. 하지만 아스키 코드로 표..
[OS] Lecture 3. OS Process Management (2/2)
·
OS
인터럽트(Interrupt) 예상치 못한, 외부에서 발생한 이벤트 인터럽트 처리과정 1. 인터럽트 발생 2. (커널 개입) 프로세스 중단 3. 인터럽트 처리(핸들링) 3.1. 인터럽트 발생 장소, 원인 파악 3.2 인터럽트 서비스 할 것인지 결정 4. 인터럽트 서비스 루틴 호출 인터럽트 서비스 호출 - context saving 발생 - context saving= 책갈피. 흐름을 저장. PCB에 저장 커널의 개입 -프로세스 중단. 인터럽트 발생 장소, 원인 파악 - 파악 완료 후? 인터럽트 서비스 호출 - 서비스 호출의 의미는? 일종의 프로그램. 인터럽트를 처리하는 프로세스 CPU 할당 - 인터럽트 프로세스 종료 후? 중간에 중단됐던 프로세스가 CPU 할당? No! - queue에서 ready 상태로 ..
[OS] Lecture 3. Process Management (1/2)
·
OS
작업(Job)/ 프로그램 - 실행 할 프로그램+ 데이터 - 디스크에 보관 상태 프로세스 - 실행 중인 프로그램 - 커널에 등록되고 커널의 관리 하에 있는 작업 - 프로세스 관리(PCB)를 할당 받은 개체 - 능독적인 개체. 실행 중, 자원을 요구, 할당, 반납하여 진행 Process Control Block(PCB) - 커널 공간(kernel space) 내에 존재 - 각 프로세스의 정보를 관리 자원(Resource) - 커널의 관리 아래에 프로세스에 할당/반납 되는 수동적 개체(passive entity) - 할당/반납은? 커널 프로세스의 상태 -프로세스와 자원의 상호작용에 의해 결정 1. created state - 프로세스= 작업을 커널에 등록 - PCB 할당, 프로세스 생성 - 상태 전이: rea..
[OS] Lecture 2. OS Overview (2/2)
·
OS
운영체제의 역할 컴퓨터 시스템 자원을 관리해서 사용자에게 서비스 제공 - 편리성 (User Interface): CUI, GUI, EUCI - 효율성 (Resource management): Hw resource, SW resource - 프로세스(실행 주체)와 thread management - 시스템 보호(System management) 컴퓨터 시스템의 구성 System Call Interface - 사용자가 직접 커널에 접근을 막는다. 필요한 기능이 있으면 OS에 요청. - 커널이 제공하는 기능 들 중 사용자가 사용할 수 있는 기능들을 모아 놓은 집합. - SCI은 요청의 통로. 운영체제의 구조 1. 커널: OS의 핵심부분. 가장 빈번하게 사용되는 기능 담당. 리소스 관리(processor, me..
[OS] Lecture 2. OS Overview (1/2)
·
OS
운영체제란? 컴퓨터 시스템 자원을 관리해서 사용자에게 서비스 제공하는 시스템 소프트웨어 프로세서란? 중앙 처리 장치. CPU, GPU. 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행하고 처리하는 제어 장치 - 연산 수행 - 컴퓨터 모든 장치 제어 레지스터란? 프로세서 내부에 있는 메모리(CPU에 포함). 컴퓨터에서 가장 빠른 메모리. CPU가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치 다양한 레지스터들을 통해 연산이 이뤄진다. 운영체제와 프로세서 - 운영체제는 프로세서에 처리할 작업 할당 및 관리: 프로세스 생성 및 관리 - 프로그램의 프로세서 사용 제어 메모리란? 데이터를 저장하는 장치(기억장치) 메모리의 종류 1. 레지스터 2. 캐시: CPU에 포함. 레지스터보다 코어에 멀리 ..
REST API
·
Programming/Spring
REST API란? REST(Representational State Transfer) API 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다. 즉 REST란? 1. HTTP URI를 통해 자원(Resource)을 명시하고, 2. HTTP Method(POST, GET, PUT, DELETE)를 통해 3. 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다. REST 구성 요소 1. 자원(Resource) : HTTP URI 2. 자원에 대한 행위(Verb): HTTP Method 3. 자원에 대한 행위의 내용(Representations): HTTP Message Pay Load RESTful이란? RESTful이란 REST의 원리를 따르는 시스템을 의..