CS7 CPU Scheduling 반효경 교수님의 강의로 운영체제를 공부하고 있습니다. 프로그램이 실행되면 위와 같은 사진처럼 실행되게 됩니다. load store, add store는 CPU를 실행시키다가 중간에 오래걸리는 작업(파일 읽기)일 때는 wait을 하고 다시 CPU를 사용하고 ... 결국 CPU를 사용하는 단계와 I/O를 하는 단계를 연속적으로 일어나게 됩니다. CPU만 사용하는 단계를 CPU burst라 부르고, I/O 를 사용하는 단계를 I/O burst라고 합니다. 프로그램의 종류에 따라 빈도는 달라진다. 보통 애플리케이션들은 이 빈도가 많다. -> 데이터를 읽어와 화면 출력을 반복하기 때문에. 프로세스의 특성 분류 프로세스는 그 특성에 따라 다음 두 가지로 나눔 I/O-bound process CPU를 잡고 계산하는 .. CS/운영체제 2023. 10. 20. Hash Table 자료구조 Hash Table은 어떤 자료 구조인가요? 위와 같은 질문을 받았을때 핵심 답변은 아래와 같다고 생각한다. hash table은 빠른 탐색을 위한 자료구조로써 key - value 쌍의 데이터를 입력받는다. hash 함수 h에 키값을 입력으로 넣음으로써 얻은 해쉬값 h(k)를 위치로 지정하여 key - value 데이터 쌍을 저장한다. 저장, 삭제, 검색의 시간 복잡도는 모드 O(1)이다. 직접 주소화 방법 직접 주소화 방법은 키값을 인덱스의 번호로 저장하는 방식입니다. 예를 들면 1 - 김지수, 2 - 홍길동, 5 - 강감찬 이런식일때 1번 인덱스, 2번 인덱스, 5번 인덱스 이렇게 저장되므로 중간에 불필요한 저장공간을 사용하게 됩니다. 그렇기 때문에 key - value 데이터 쌍을 저장하기 위한 .. CS/자료구조 2023. 10. 19. Array, Linked List Array와 Linked List의 큰 차이점은 메모리에 저장되는 방식과 이에 따른 조회 및 삭제의 연산속도이다. Array란? Array는 연관된 데이터를 메모리상에 연속적이며 순차적으로 미리 할당된 크기만큼 저장하는 자료구조이다. Array의 특징 고정된 저장 공간 순차적인 데이터 저장 Array의 장점은 조회와 마지막 인덱스에 추가가 빠르다. 따라서 조회를 자주 해야되는 작업에서는 Array 자료구조를 많이 사용한다. Linked List란? Linked List는 Node라는 구조체로 이루어져 있다. Node는 데이터 값과 다음 Node의 주소를 저장한다. Linked List는 물리적인 메모리에서는 비연속적으로 저장되지만 Linked List를 구성하는 각각의 노드가 다음 노드의 주소를 가리킴으.. CS/자료구조 2023. 9. 14. 프로세스 관리 반효경 교수님의 강의로 운영체제를 공부하고 있습니다. 프로세스 생성 부모 프로세스가 자식 프로세스 생성 프로세스의 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다. 부모와 공유한다. 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 수행(Execution) 부모와 자식을 공존하며 수행되는 모델 자식이 종료(terminate)될 때 까지 부모가 기다리는(wait) 모델 주소공간(Address space) 자식은 부모의 공간을 복사함(binary and OS data) 자식은 그 공간에 새로운 프로그램을 올림 유닉스의 예 fork() 시스템 콜이 새로운 프로세스를 생성 부모를 그대로 복사(OS data except PID + bina.. CS/운영체제 2023. 8. 27. 프로세스 반효경 교수님의 강의로 운영체제를 공부하고 있습니다. 프로세스 개념 Process is a program in execution 즉, 실행 중인 프로그램을 의미합니다. 프로세스의 문맥(context) CPU 수행 상태를 나타내는 하드웨어 문맥 하드웨어 문맥 Program Counter 각종 register 프로세스의 주소 공간 code, data, stack 프로세스 관련 커널 자료 구조 PCB(Process Cotrol Block) Kenel stack 우리가 프로그램을 실행시키면 프로세스 A의 주소공간에 stack, data, code 메모리가 있습니다. 현재 프로세스의 함수를 실행시켜 스택에 쌓여있고, 변수들의 값이 얼마이고 레지스터의 값을 넣고 어디까지 실행했는가 이런것들이 현재 프로세스의 상태를.. CS/운영체제 2023. 8. 8. 컴퓨터 시스템 구조 반효경 교수님의 강의로 운영체제를 공부하고 있습니다. 보통 컴퓨터 시스템 구조라 하면 CPU, Memory를 말합니다. 그리고 I/O 디바이스로 구성되어 있습니다. 컴퓨터 시스템의 구조는 컴퓨터 내부 장치인 CPU, 메모리와 컴퓨터 외부 I/O 장치(입출력 장치)인 디스크, 키보드, 마우스 등으로 구분된다. 컴퓨터는 외부의 I/O 장치(키보드 등등)에서 Input을 받아와 데이터를 처리한 뒤, 그 결과를 output 하는 방식으로 일을 처리합니다. 인터럽트 - interrupt 인터럽트란 CPU가 일을 하는 도중에 I/O 장치등에 의해서 먼저 처리를 해야 되는 상황을 말합니다. 인터럽트 당한 시점의 레지스터와 프로그램 카운터를 저장한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다. interrupt :.. CS/운영체제 2023. 8. 2. 운영체제란 무엇인가? 반효경 교수님의 강의로 운영체제를 공부하고 있습니다. 운영체제(Operating System, OS)란 무엇인가? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층. 협의의 운영체제 : 커널 광의의 운영체제 : 커널뿐만 아니라 각종 주변 시스템 유틸리티를 포함한 개념 운영체제의 목적 컴퓨터 시스템의 자원을 효율적으로 관리 프로세서(CPU), 기억장치(Memory), 입출력 장치(IO) 의 효율적 관리 -> 하드웨어의 자원 프로세스, 파일, 메시지 등을 관리 -> 소프트웨어의 자원 운영체제의 분류 운영체제는 크게 3가지로 분류 할 수있습니다. 동시 작업 가능 여부 사용자의 수 처리 방식 동시 작업 여부 단일 작업 - 한 번에 하나의 작업만 처리(MS-.. CS/운영체제 2023. 8. 2. 이전 1 다음