🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

블로그

운영체제(OS)와 컴퓨터 시스템 2 - CPU

CPU os가 프로그램을 실행하는 구조 os가 프로그램을 실행  하드디스크 안의 프로그램을 메모리로 읽어들인 후 실행 메모리에 할당된 프로그램은 '프로세스'라고 일컬음   프로세스 상태 : 실행 상태, 실행 가능 상태, 대기 상태       cpu에 할당되어 실행 중인 상태가 실행 상태. 우선순위가 높은 프로세스에 의해 인터럽트(중단) 처리되기도 함.   멀티태스킹 태스트(Task) : os가 cpu에 의뢰하는 작업 단위 멀티태스킹 : 여러 개의 태스크를 동시에 처리하는 행위    스케줄링을 통해 순서대로 처리하는 것; 빠른 전환으로 인해 동시에 수행되는 것처럼 보임   프로세스가 메모리와 같은 공유 자원을 이용할 때는 영향이 가지 않도록 잠금(Lock)이 일어나기도 함. 이 경우, 양 쪽 프로세스 모두 계속해서 대기 상태에 빠지는 데드락이 발생할 수 있음.   프로세스 제어 - 프로그램 상태어 (PSW : Program Status Word) cpu 속 레지스터에 인퍼럽트로 중단된 프로그램 상태나 연산의 종료 상태를 저장. - 프로세스 제어 블럭 (PCB : Process Control Block) 각 프로세스의 CPU상태(컨텍스트)나 프로세스의 상태를 제어해두는 메모리 영역. - 컨텍스트 스위치 인터럽트로 인해 프로세스를 전환할 때 os가 컨텍스트를 PCB에 저장하고 복원하는 것   프로세스 동기 배타 제어 : 처리가 끝날 때까지 하나의 프로세스에게 자원을 독점시켜 일관성을 유지. 세마포: 정해진 수 이상의 프로세스가 공유 자원에 동시 접근하지 않도록 카운터를 이용해 제어하는 장치. 무한정 대기 상태 데드락 피하기 -> 세마포와 뮤텍스(세마포 카운터 1) 여러 개의 프로세스에 의한 공유 자원 경쟁이 없어짐; 배타 제어   프로세스 통신 메시지 큐 : os의 메시지 기능을 통해 1대1 통신 파이프 : 여러 개의 프로세스 입출력을 연결하는 장치. 일방향.   공유 메모리와 스레드 공유 메모리 : 여러 개의 프로세스에서 공통으로 사용할 수 있는 메모리 영역. 스레드  : 프로세스 안의 프로그램 실행의 흐름.      스레드끼리는 같은 메모리 공간 참조 멀티 스레드 : 여러 스레드 동시 실행     <도서 정리> OS가 보이는 그림책 - ANK Co., Ltd. 저 | 이영란 역

OS시스템CPU도서

운영체제(OS)와 컴퓨터 시스템 1

운영체제 1. 운영체제란 무엇인가. 운영체제는 컴퓨터를 관리 및 제어하기 위한 소프트웨어이다. - 프로세스 관리 - 메모리 관리 - 디스크 관리 - 네트워크 관리 대표적인 운영체제 : Windows, UNIX(Linux), Max OS   2. 컴퓨터 구성 부품 메인보드 : 컴퓨터를 구성하는 부품을 접속하고, 데이터 처리와 부품의 제어를 수행 CPU : 컴퓨터의 작동 제어 또는 연산 처리를 수행한다. (두뇌 역할) 메모리 : 명령, 프로그램, 데이터, 처리 결과 등을 일시적으로 기억하는 장치이며 휘발성이이다.(현재 작업을 처리하는 역할 및 공간) 하드디스크 : 대용량 기억 장치이며, 비휘발성이다. (데이터, 프로그램 저장창고) BIOS (Basic Input Output System) : 컴퓨터에 접속된 기기를 제어한다. 칩셋 : 각 부품이 주고받는 데이터 흐름을 관리한다. 수억 개 이상의 트랜지스터가 집적되어 있다.   3. OS 기능 컴퓨터 기동 하드웨어 -> BIOS -> 부팅로더 -> OS 사용자 영역의 요청(쉘, 응용 소트프웨어) -> 커널 -> OS 쉘 인터페이스는 CUI(명령 프롬프트;cmd) 또는 GUI(사용자들이 주로 사용하는 디스플레이)   I/O 포트 ; Input/Output 입출력 구조 I/O 주소 공간에 명령이나 데이터를 넣어 디바이스를 제어 ex) 키보드 컨트롤러 메모리   기억장치 레지스터 CPU 안에 레지스터는 연산 결과를 저장한다. 캐시메모리는 CPU와 메모리 사이에 빠른 전달을 돕기 위한 CPU의 메모리이다. 내부 기억장치 메인 메모리 외부 기억장치 하드디스크 고속화를 위해 디스크 캐시가 존재한다.     <도서 정리> OS가 보이는 그림책 - ANK Co., Ltd. 저 | 이영란 역

OS시스템도서

박예은

[인프런 워밍업 클럽 CS 3기] 1주차 운영체제 미션

Q1) 아래 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?while(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 }플레이어가 스킬을 사용한 경우에 이벤트를 발생시키거나 콜백 함수가 실행되도록 구현하여 무한 반복문을 돌면서 불필요한 자원 낭비를 막을 수 있다. Java Script의 경우 eventListener를 사용하여 이벤트를 다룰 수 있고, C언어는 select나 kqueue와 같이 멀티플렉싱을 지원하는 시스템 콜 함수를 사용하여 작업이 완료된 경우 후속 작업을 처리하도록 구현할 수 있다. 폴링 방식(Polling)I/O 작업이 완료되었는지 CPU가 주기적으로 확인하는 것→ CPU의 낭비가 심하다.⇒ 인터럽트 방식을 사용인터럽트(Interrupt)I/O 관리자에게 I/O 작업을 맡기고, CPU는 다른 작업을 처리.I/O 작업 완료 시, 인터럽트 발생 → CPU가 완료된 I/O 작업을 이어서 처리⇒ CPU의 낭비 없이 CPU의 처리량을 높일 수 있다. Q2) 프로그램과 프로세스가 어떻게 다른가요?프로그램저장장치에 저장된 코드의 집합으로, 정적인 상태이다.수동적프로세스실행 중인 프로그램으로, 프로그램이 메모리에 적재되어 운영체제의 관리하에 실행되는 동적 개체이다.능동적  Q3) 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?멀티프로그래밍하나의 메모리에 여러 개의 프로세스를 적재하여 실행시키는 것이다.시분할(time-sharing) 시스템을 통해 여러 개의 프로세스가 동시에 실행되는 것처럼 보이게 할 수 있다. 실제로는 한 번에 하나의 프로세스만 실행된다.멀티프로세싱여러 개의 프로세서(CPU)가 여러 개의 프로세스를 실행시키는 것이다.실제로 여러 개의 프로세스가 동시에 실행될 수 있다. (병렬처리)동시에 작업되는 프로세스의 최대 수 = CPU 개수 Q4) 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요? 프로세스가 생성될 때 운영체제는 PCB(Process Control Block)를 생성한다. PCB에는 Process ID, 프로세스 상태, 포인터, PC(Process Counter), 레지스터 정보 등이 포함되어 있다. 이 정보를 통해(특히 PC, 레지스터 정보) 시분할 시스템에서 CPU 할당 시 이전 작업 상태를 이어받아 실행할 수 있다.  Q5) 컨텍스트 스위칭이란 뭔가요?한 프로세스가 I/O 작업 요청이나 CPU 점유시간 초과 등으로 인해 CPU를 반납해야 할 경우, 인터럽트가 발생하여 운영체제가 해당 프로세스로부터 CPU 제어권을 회수한다.이때, 현재 실행 중인 프로세스의 레지스터 값 등을 PCB에 저장한다.이후, 다음에 실행할 프로세스의 PCB에 저장된 레지스터 값을 CPU에 로드하고,PC에 저장된 다음으로 실행할 명령어의 주소를 보고 프로세스의 작업을 이어서 진행한다.

시스템 · 운영체제CSOS

운영체제(OS)와 컴퓨터 시스템 - 디스크

디스크 관리   데이터 액세스 방식에 따른 외부 기억 장치 종류 - 랜덤 액세스 목적 데이터에 직접 접근하는 방식. 고속으로 접근. HDD, CD/DVD, FDD - 시퀀셜 액세스 기억 영역의 맨 처음부터 데이터를 순서대로 검색하여 액세스해 나가는 방법 자기 테이프, 플래시 메모리(USB), SD 메모리 카드   하드디스크 구조 플래터(원반), 트랙(동심원 형태의 영역), 섹터(트랙의 재분할), 실린더(트랙의 모음) os가 사용하는 단위는 클러스터 == 여러 개의 섹터 모음 항상 클러스터(섹터)를 모두 사용할 수 없기 때문에 미사용 영역 발생.   스트림 스트림 : 파일 간에 데이터가 통하는 통로가 있으며, 그 통로를 흐르는 데이터의 흐름을 의미. 스트림에 대한 조작에는 open, read, write, close가 있음.   프래그먼테이션(단편화) 하나의 파일이 여러 트랙에 분할되어 기록되는 상황. 시크 횟수가 증가하여 액세스 시간 증가하는 문제 발생. -> 디프래그로 해결; 연속된 영역으로 다시 기록.   디스크 캐시  하드디스크에서 읽어드린 데이터를 일시적으로 저장하기 위한 메모리. 매번 디스크로부터 읽어들일 필요가 없어지기 때문에 액세스 속도 향상.   리던던시 시스템의 리던던시 : 시스템 장애가 발생해도 큰 손실이 나지 않도록 시스템에 여유를 가지게하는 것. 데이터의 리던던시 : 실질적으로 의미가 없는 여분의 데이터 또는 데이터의 정당성을 검증하기 위해 값을 추가하는 것 RAID : 여러 개의 하드디스크를 연결하여 동시에 여러 개의 하드디스크에 액세스하는 방식 분산 중복 저장, 오류 발견 디스크 마련 등 CPU, 메모리에 부담이 적어짐.       <도서 정리> OS가 보이는 그림책 - ANK Co., Ltd. 저 | 이영란 역    

OS시스템디스크도서

채널톡 아이콘