1. 왜ContextSwitcing이필요하고, ContextSwitching은어떤식으로진행되는가?
ContextSwitching : 현재 진행하고 있는 task의 상태를 저장하고 다음 진행할 task의 상태값을 읽어 적용하는 과정
- 컴퓨터가 하나의 task만 처리할 수 있다면, 해당 task가 끝날때까지 기다려야하고 반응속도가 매우 느리고 사용하기 불편하다.
- 다양한 사람들이 동시에 사용하는 것처럼 하기 위해서는 multitasking을 통해 응답할 수 있고, 빠른 속도로 task를 바꿔가며 실행하기 때문에 실시간처럼 보이게 되는 장점
- CPU가 task를 바꿔가며 실행하기 위해서 ContextSwitching이 필요하다.
ContextSwitching 진행방식
- task의 정보는 register에 저장되고 Process Control Block(PCB)으로 관리된다.
- 현재 실행하고 있는 task의 PCB정보를 저장한다,
- 다음 실행할 task의 PCB정보를 읽어 register에 적재하고 cpu가 이전에 진행했던 과정을 연속적으로 수행가능
PCB구조
- Process State : Create, Ready, Running, waiting, terminated
- Process Counter : 다음 실행할 명령어의 주소값
- CPU Registers : accumulator, index register, stack pointers, general purpose registers
Context Switching을 수행하는 cpu는 cache를 초기화하고 memory mapping을 초기화하는 작업을 거치는 등의 작업을 하지 못하므로 잦은 context switching은 성능저하를 가져온다,
2. HTTP 주요상태 코드들에 관한 정리 (자주 사용하는 빈도순으로 10가지)
- 상태코드는 3자리 숫자로 만들어져 있으며, 첫번째 자리는 1~5까지 제공, 4와5인 경우는 정상적인 상황이 아니기 때문에 사이트 관리자가 즉시 알아야하는 정보
1xx(정보) : 요청을 받았으며 프로세스 계속 진행
2xx(성공) : 요청을 성공적으로 받았으며 인식했고 수용했음.
3xx(리디렉션) : 요청 완료를 위해 추가 작업조치 필요
4xx(클라이언트 오류) : 요청의 문법이 잘못되었거나 요청처리 불가
5xx(서버오류) : 서버가 명백히 유효한 요청에 대한 충족을 실패
- 자주사용되는 코드표
번호대역 | 상태코드 | 이름 | 의미 |
2xx | 200 | OK | 기존에 있는 url에 대한 요청이 성공, 주로 GET이 사용 |
201 | Create | 신규 url에 대한 리소스 생성이 성공 | |
202 | Accepted | 요청은 접수되었지만 리소스 처리는 완료되지 않음 | |
204 | No Contents | 요청은 성공했지만 제공할 콘텐츠가 없음 | |
3xx | 300 | Multiple Choice | 요청한 url에 대해서 여러개의 리소스가 존재 |
301 | Move Permanently | 요청한 url이 새 위치로 옮겨갔음. 새 위치는 location header에 명시 | |
304 | Not Modified | 요청한 url의 내용이 변경되지 않음. | |
4xx | 400 | Bad Requese | 요청이 정상적이지않음. API에서 정의되지 않은 요청이 들어옴 |
401 | Unauthorized | 인증오류 | |
403 | Forbidden | 접근금지, 권한 밖의 접근을 시도함 | |
404 | Not Found | 요청한 url에 해당되는 리소스가 존재하지않음 | |
405 | Method Not Allowed | 메소드 오류, API에서 정의되지 않은 메소드를 호출 | |
406 | Not Acceptable | 처리 불가, Accept헤더에 명시된 타입과 호환되지 않음 | |
408 | Request Timeout | 요청 대기 시간 초과 | |
409 | Conflict | 모순, 리소스 변경 시 정합성이 맞지않음 | |
429 | Too Many Request | 요청횟수 초과 | |
5xx | 500 | Internal Server Error | 서버 내부 오류, 클라우드 측의 로직에 문제가있음 |
502 | Bad Gateway | 게이트웨이 오류 | |
503 | Service Unavailable | 서비스 이용불가, 일시적으로 클라우드 측에 과부하가 걸리거나 다운 | |
504 | Gateway Timeout | 게이트웨이 시간 초과 |
3. EAMS(Enterprise Architecture Management System)란?
1. EA의 아키텍쳐 결과물에 대한 효율적관리, 개선을 위한 EAMS
- 업무, 응용, 데이터, 기술, 보안 등의 아키텍쳐 결과물을 등록하고, 각 아키텍쳐간의 관계를 분석하며, 아키텍쳐 정보에 대한 현재상태, 미래상태와 이행계획을 체계적으로 유지 관리하여 효율적으로 활용하기 위한 정보시스템
- 업무+데이터+응용+기술 ==> 구체화,표준화,현행화
2. EAMS의 필요성
- EA는 일시적 구축으로 완성되는 것이 아니라, 지속적 유지관리가 이루어져야 한다.
- 일반적 문서형태로 관리하기에는 내용이 방대하고 접근이 용이하지 않음으로 repository 기반 관리시스템이 필요
3. EAMS 관리 시스템 구성
1) 시스템구성 : 관리도구, 웹인터페이스, EA관리시스템 엔진, repository, 타 시스템 연계
2) 시스템 기능구성
- 모델링도구 : 아키텍쳐모델링, 다이어그램, 연관관계설정, 산출물 생성
- ITA 관리 시스템 : 산출물 통합관리 및 활용(조회, 검색, 분석, 관리, 사용자관리, 시스템관리)
- 타 시스템 연계 : 자산관리, 업무관리, 그룹웨어, BSC 등
4. EAMS 관리시스템의 특징
- 아키텍쳐 산출물 저장/공유 repository 제공
- 아키텍쳐 통합 조회/활용 기능 제공
- 산출물을 지속적으로 현행화, 현실화 시킴
- 사용자/아키텍처별 접근관리/권한 관리 기능제공
- 웹기반 포탈기능으로 협업 및 IT관련 이해관계자가 쉽게 활용가능
4. 인텔의 ‘하이퍼스레딩’ 이라는 기술?
하이퍼스레딩이라는 기술은 2000년대 초반 적용되기 시작한 기술이다.
인텔은 듀얼코어 대신 듀얼코어와 비슷한 성능을 내도록 싱글코어에 하이퍼 스레딩 기술을 적용하기 시작.
CPU 코어 수가 1개라면 컴퓨터에게는 코어 수가 2개로 보이도록 하여 처리 성능을 향상시키는 기술
하이퍼 스레딩 기술을 사용하면 멀티코어를 사용해야 할 작업에서 20~30%의 성능향상 효과가 있다.
그러나 싱글코어로도 충분한 작업에서는 10% 정도의 성능이 저하된다.
CPU의 성능향상 기법 중 하나인 SMT(Simutaneous Multi-threading)는 동시에 여러 스레드를 처리하는 기법을 통칭한다,
CPU의 성능을 올릴 때엔 병렬성을 추구하는 경우가 일반적인데, 물리적인 프로세서의 개수를 늘리지 않고 여러 스레드를 동시에 집어넣기만 함으로써 하나의 CPU코어에서 여러 스레드를 병렬로 처리할 수 있기도 한데, 이를 SMT라고 한다.
SMT 기술 중 하나가 인텔의 하이퍼 스레딩.
'Infra' 카테고리의 다른 글
Infra 운영 따라잡기 6주차 (0) | 2021.11.29 |
---|---|
Infra 운영 따라잡기 5주차 (0) | 2021.11.15 |
Infra 운영 따라잡기 3주차 (0) | 2021.11.01 |
Infra 운영 따라잡기 2주차 (0) | 2021.10.25 |