- tensorflow
- SingleProject
- 2023_1st_Semester
- Artificial_Intelligence
- Java
- cloud_computing
- Algorithm
- Univ._Study
- Python
- Image_classification
- 티스토리챌린지
- Linux
- C
- datastructure
- kubeflow
- 자격증
- codingTest
- 리눅스마스터2급
- app
- Database_Design
- Unix_System
- 오블완
- Baekjoon
- study
- Kubernetes
- Android
- Personal_Study
- c++
- Operating_System
- programmers
목록Operating_System (6)
코딩 기록 저장소

1. 스레드 동기화의 필요성 ■ 다수의 스레드가 동시에 공유 데이터에 쓰기를 접근하면 - 공유 데이터가 훼손되는 문제 발생 가능 - 두 스레드가 동시에 공유 데이터 읽는 경우 -> 문제 없음 - 한 스레드는 쓰고 한 스레드는 읽을 경우 -> 읽고 쓰는 순서에 따라 읽는 값이 달라질 수 있지만 공유데이터의 훼손은 없음 - 두 스레드가 동시에 공유 데이터에 쓰는 경우 -> 공유 데이터 훼손 가능성 ■ 스레드 동기화 (Thread Synchronization) - 공유데이터에 대한 다수의 스레드가 동시에 접근할 때 공유데이터가 훼손되지 않게 하는 기법 - 한 스레드가 공유데이터를 배타적 독점적으로 접근하도록 순서화 공유 집계판에 동시 접근하는 사례 공유 집계판 문제를 프로그램으로 작성 ■ 공유 집계판 사례의 ..

1. CPU 스케줄링 개요 운영체제에서 일어나는 다양한 스케줄링 ■ 스케줄링은 왜 필요할까? - 자원에 대한 경쟁이 있는 곳에서 경쟁자 중 하나 선택 - 자원 : CPU, 디스크, 프린트, 파일, 데이터베이스 등 IO, CPU - 컴퓨터 시스템 여러 곳에서 발생 ■ 컴퓨터 시스템 내 다양한 스케줄링 작업(job) 스케줄링 배치시스템에서 대기중인 배치 작업(Job) 중 메모리에 적재할 작업 결정 CPU 스케줄링 - 프로세스 스케줄링 프로세스/스레드 중에 하나를 선택하여 CPU 할당 오늘날 CPU 스케줄링은 커널 수준의 스레드 스케줄링 디스크 스케줄링 디스크 장치 내에서 디스크 입출력 요청 중 하나 선택 프린터 스케줄링 프린팅 작업 중 하나 선택하여 프린터 할당 다중프로그래밍과 스케줄링 ■ 다중프로그래밍의 ..

1. 프로세스의 문제점 프로세스의 문제점 ■ 다중 프로세스를 이용한 멀티태스킹 - 응용프로그램에서 여러 프로세스를 생성하여 동시에 여러 작업 실행 - 운영체제는 스케줄링을 통해 여러 프로세스(작업)를 번갈아 실행 ■ 프로세스를 실행 단위로 하는 멀티태스킹의 문제점 1. 프로세스 생성의 큰 오버헤드 - 프로세스를 위한 메모리 할당, 부모프로세스로부터 복사 - PCB 생성, 매핑 테이블 (페이지 테이블) 생성 등 2. 프로세스 컨텍스트 스위칭의 큰 오버헤드 - CPU 레지스터들을 컨텍스트로 PCB에 저장, 새 프로세스 컨텍스트를 PCB에서 CPU로 옮기는 시간 - CPU가 참고할 매핑 테이블 (페이지 테이블) 교체 시간 - CPU 캐시에 새 프로세스의 코드와 데이터가 채워지는데 걸리는 시간 등 3. 프로세스..

1. 프로세스 개요 프로세스 개요 ■ 프로그램 (Program) - 하드디스크 등의 저장 매체에 저장. 실행 파일의 형태 ■ 프로세스 (Process) - 프로그램이 메모리에 적재되어 실행 중인 상태 - 필요한 모든 자원 할당 받음 - 자원 : 코드 공간, 데이터 공간, 스택 공간, 힙 공간 - 메모리 ● 프로세스의 특징 - 운영체제는 프로그램을 메모리에 적재하고 프로세스로 다룸 - 운영체제는 프로세스에게 실행에 필요한 메모리 할당, 이곳에 코드와 데이터 등 적재 - 프로세스들은 서로 독립적인 메모리 공간을 가짐. 다른 프로세스의 영역에 접근 불허 - 운영체제는 각 프로세스의 메모리 위치와 크기 정보를 관리함. - 운영체제는 프로세스마다 고유한 번호 (프로세스 ID) 할당 - 프로세스의 관한 모든 정보는..

1. 컴퓨터 시스템과 하드웨어 컴퓨터 시스템을 구성하는 계층 컴퓨터 시스템의 범위 ■ 컴퓨터 시스템의 계층 - 응용 프로그램 층 - 운영체제 층 - 컴퓨터 하드웨어 층 ■ 컴퓨터 시스템 계층 구조의 특징 - 사용자는 응용프로그램과 GUI/도구프로그램(툴 / 유틸리티)을 통해 컴퓨터 활용 - 하드웨어는 모두 운영체제의 배타적 독점적 지배 받음 - 사용자나 응용프로그램의 하드웨어에 대한 직접 접근 불허 ( 반드시 운영체제 통해서만 접근 가능 ) ■ 계층 구조로 보는 운영체제의 기능 - 사용자가 하드웨어에 대해 몰라도 컴퓨터를 사용할 수 있도록 함 - 응용프로그램과 하드웨어 사이의 중계 - 위로는 응용프로그램과 아래로는 하드웨어와의 인터페이스 컴퓨터 하드웨어 구성 컴퓨터 하드웨어 설명 ■ CPU (Centra..

1. 운영체제 개념 운영체제 정의 - 컴퓨터 사용자와 하드웨어 사이에서 중계 역할을 하면서, 프로그램 실행을 관리하고 제어하는 시스템 소프트웨어 - 운영체제는 컴퓨터가 아님 - 운영체제는 실체가 있는 소프트웨어 ( 인터페이스 ) - 컴퓨터가 켜질 때 처음으로 적재되어 나머지 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어 memo : 부트로더가 부팅영역 관리. ROM이 부트로더 로딩 - 컴퓨터의 자원을 독점적으로 관리하는 특별한 소프트웨어 운영체제의 정의에서 핵심 단어 1. 운영체제는 컴퓨터의 모든 자원(Resource) 관리 - 자원 - 하드웨어 자원 : CPU, 캐시, 메모리, 키보드, 마우스, 디스플레이, 하드디스크, 프린터 - 소프트웨어 자원 : 응용프로그램 - 데이터 자원 ..