Computer Engineering(39)
-
Spring
1. SpringSpring의 주요 기술에는 스프링 프레임워크 , 스프링 부트 등이 있다.스프링 프레임워크가 핵심이며, 이외 모든 기술들은 프레임워크를 기반으로 동작한다. 해당 기술들을 편리하게 설정하고 사용할 수 있도록 도와주는 기술이 스프링부트이다.자바 언어 기반의 프레임워크이다.자바는 객체지향언어이며, 스프링은 객체지향 언어가 가진 강력한 특징을 살려내는 프레임워크이다. 즉, 스프링은 좋은 객체 지향 애플리케이션을 개발 할 수 있게 도와주는 프레임워크이다. 2. 객체 지향 프로그래밍컴퓨터프로그램을 명령어의 목록으로 보는 시각에서 벗어나서 여러개의 독립된 단위, "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체들은 메세지를 주고받고, 데이터를 처리할 수 있다.객체 지향 프로그래밍은 프로그램..
2024.06.28 -
13. File System
1. File System Interface논리적(전체적) 구성, persistant storage"블록" 단위 저장장치 가상화File바이트의 배열inode number - lower level name 가지고 있다.- Data : 내용- inode(=meta data) : 속성성능, 신뢰성, 용량 ↑ Directory파일 또는 또 다른 디렉토리를 가리킨다. 형태의 목록을 가진다. fsync(): 즉시 기록한다(write)rename(): atomic call 구현한다. -> fsync() 즉시 저장할 시 문제가 될수도 있다. 재부팅시 파일크기가 0이되는 trunc로 열기 때문이다. 파일시스템은 mount이용해 단일 디렉토리 트리를 구성한다. 2. File System ImplementationVSFS..
2024.06.20 -
12. I/O Device
1. I/O Hardware PC BUS 구조I/O Hardware DeviceController(host adapter)1. Status Register통신방법 :PollingInterrupt상태를 반복해서 확인하기에 busy waiting 발생다른 프로세서에 양도빠른 장치느린 장치2. Command Register통신방법:Memory Mapped I/OI/O-Mapped I/OI/O 장치를 memory 블록으로 취급In, Out 명령어를 통해 장치 접근해당 주소에 memory load, store -> 장치 접근 + : 구조 simplify, 한번에 많은 데이터 및 장치 접근+ : 메모리 주소공간 낭비x, 빠르다 - : 메모리 주소 공간 차지, 잠재적 복잡도- : 복잡한 프로그래밍, 연결과 접근하는..
2024.06.19 -
9. Main Memory
1. Background프로세스는 실행 중인 프로그램을 말하는데 역기서 실행 중이라는 말은 main memory에 올라갔다는 뜻이다.main memory와 register는 cpu가 직접 접근할 수 있는 유일한 저장소이다.메모리 단위는 address+read요청 또는 address+data and write 요청만 처리한다.main memory는 많은 cycle을 소모하여 stall을 초래한다.(약 100cycle)cache는 main memory와 cpu register 사이 위치한다. protection프로세스를 다른 프로세스로부터 보호한다.모든 프로세스는 해당 프로세스의 address process 내에 있는 주소에만 접근할 수 있어야 한다. logical(논리적) address space를 정의하..
2024.06.14 -
8. Deadlocks - Concurrency problems
1. Common Concurrency Problems (일반적인 동시성 문제)Non Deadlock의 대부분은 아래 두 가지 case이다.Atomicity violation(원자성 위반)lock을 안걸어서 여러 메모리 접근의 일관성이 깨진다. 원하는 serializability(직렬화)가 깨진다.ex) MySQL에서 두 thread가 동일한 변수 (proc_info)에 접근하는 경우→ 해결! 공유변수 접근시 lock을 걸어준다.Order violation(순서 위반) 두 메모리 접근 간의 원하는 순서가 뒤바뀌는 문제실행 순서가 보장되지 않는다ex) thread가 변수를 초기화하기 전에 접근하려는 경우→ 해결! 조건변수를 사용해 순서를 보장한다. 2. Deadlock(교착상태)deadlock은 threa..
2024.06.14 -
4. The Processor - Pipelining
1. 파이프라이닝의 이해파이프라이닝은 여러 명령어가 중첩되어 실행[overlapping execution]되는 구현기술이다.파이프라이닝을 사용하면 성능이 향상되는 이유는 각 단계를 병렬로 동작시켜 같은 시간에 더 많은일을 처리할 수 있도록한기 때문이다.파이프라이닝은 처리 시간은 오히려 증가시키지만, 처리량을 극대화시켜 시간을 감소시킨다. 2. Pipeline과 Datapath 제어우선 명령어는 다음과 같이 5단계로 나눌 수 있다.IF (Instruction Fetch): 명령어 인출ID (Instruction Decode): 명령어 해독 및 레지스터 파일 읽기EX (Execution / Address Calculation): 실행 또는 주소 계산Mem (Memory Access): 메모리 접근WB (Wr..
2024.06.13